Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Foreign includes
- #include <stdio.h>
- // Forward declarations
- typedef struct T T;
- typedef struct ConstVector ConstVector;
- typedef struct Any Any;
- #line 2 "<builtin>"
- typedef enum TypeKind {
- TYPE_NONE,
- TYPE_VOID,
- TYPE_BOOL,
- TYPE_CHAR,
- TYPE_UCHAR,
- TYPE_SCHAR,
- TYPE_SHORT,
- TYPE_USHORT,
- TYPE_IN
- "\"
- typedef enum Color {
- COLOR_NONE,
- COLOR_RED,
- COLOR_GREEN,
- COLOR_BLUE,
- NUM_COLORS,
- } Color;
- #line 27 "<builtin>"
- struct TypeFieldInfo {
- char const ((*name));
- typeid type;
- int offset;
- };
- struct TypeInfo {
- TypeKind kind;
- int size;
- int align;
- char const ((*name));
- int count;
- };
- ;
- #line 14 "..\\ion\\test1.ion"
- extern SomeIncompleteType (*incomplete_ptr);
- #line 27
- #define PI (3.140000f)
- #line 28
- #define PI2 ((PI) + (PI))
- #define U8 ((uint8)(42))
- extern char c;
- #line 33
- extern uchar uc;
- #line 34
- extern schar sc;
- #define N ((((char)(42)) + (8)) != (0))
- #line 136
- uchar h(void);
- #line 38
- typedef int (A[(1) + ((2) * (h)())))]);
- extern char (*code);
- #line 49
- struct S1 {
- int a;
- int const (b);
- };
- struct S2 {
- S1 s1;
- };
- void f10(int (a[3]));
- #line 62
- void test_arrays(void);
- #line 68
- void test_loops(void);
- #line 102
- void test_nonmodifiable);
- #line 114
- struct UartCtrl {
- bool tx_enable;
- #line 115
- bool rx_enable;
- };
- #define UART_CTRL_REG ((uint *)(0x12345678))
- uint32 pack);
- #line 124
- UartCtrl unpack);
- #line 128
- void test_uart(void);
- #line 205
- struct Vector {
- int x;
- #line 206
- int y;
- };
- #line 163
- typedef IntOrPtr U;
- #line 169
- union IntOrPtr {
- int i;
- int (*p);
- };
- #line 146
- int g(U u);
- #line 150
- void k(void (*vp),);
- #line 155
- void f1(void);
- #line 160
- void f3(int (a[]));
- #line 165
- int example_test);
- #line 221
- int fact_rec(int n);
- #line 213
- int fact_iter(int n);
- #line 174
- extern char const ((escape_to_char[256]));
- #line 184
- extern int (a2[11]);
- #line 187
- int is_even);
- #line 203
- extern int i;
- #line 209
- void f2(Vector v);
- #line 231
- extern T (*p);
- #line 229
- #define M ((1) + (sizeof(p)))
- #line 233
- struct T {
- int (a[M]);
- };
- #line 245
- extern char const ((*(color_names[NUM_COLORS])));
- #line 252
- void test_enum(void);
- #line 261
- void test_assign(void);
- #line 284
- void benchmark(int n);
- #line 291
- int va_test(int );
- #line 295
- typedef int (*F)(int, ...);
- void test_lits(void);
- #line 314
- void test_ops(void);
- #line 344
- #define IS_DEBUG (true)
- void test_bool(void);
- #line 353
- int test_ctrl(void);
- #line 363
- extern int const (j);
- #line 364
- extern int const ((*q));
- #line 365
- extern Vector const (cv);
- void f4);
- #line 370
- struct ConstVector {
- int const (x);
- #line 371
- int const (y);
- };
- ;
- #line 377
- void test_convert);
- #line 385
- void test_const(void);
- #line 408
- void test_init(void);
- #line 421
- void test_sizeof(void);
- #line 429
- void test_cast(void);
- #line 438
- struct Any {
- void (*ptr);
- typeid type;
- };
- void print_any);
- #line 461
- void print_type);
- #line 456
- void println_any);
- #line 485
- void println_type);
- #line 490
- void print_typeinfo);
- #line 514
- void println_typeinfo);
- #line 519
- void test_typeof(void);
- #line 534
- void test_typeinfo);
- #line 543
- int main(int argc,);
- // Typeinfo
- TypeInfo *typeinfo_table[76] = {
- [0] = NULL, // No associated type
- [1] = &(TypeInfo){TYPE_VOID, .name = "void"},
- [2] = &(TypeInfo){TYPE_BOOL, .size = sizeof(bool), .align = sizeof(bool), .name = "bool"},
- [3] = &(TypeInfo){TYPE_CHAR, .size = sizeof(char), .align = sizeof(char), .name = "char"},
- [4] = &(TypeInfo){TYPE_UCHAR, .size = sizeof(uchar), .align = sizeof(uchar), .name = "uchar"},
- [5] = &(TypeInfo){TYPE_SCHAR, .size = sizeof(schar), .align = sizeof(schar), .name = "schar"},
- [6] = &(TypeInfo){TYPE_SHORT, .size = sizeof(short), .align = sizeof(short), .name = "short"},
- [7] = &(TypeInfo){TYPE_USHORT, .size = sizeof(ushort), .align = sizeof(ushort), .name = "ushort"},
- [8] = &(TypeInfo){TYPE_INT, .size = sizeof(int), .align = sizeof(int), .name = "int"},
- [9] = &(TypeInfo){TYPE_UINT, .size = sizeof(uint), .align = sizeof(uint), .name = "uint"},
- [10] = &(TypeInfo){TYPE_LONG, .size = sizeof(long), .align = sizeof(long), .name = "long"},
- [11] = &(TypeInfo){TYPE_ULONG, .size = sizeof(ulong), .align = sizeof(ulong), .name = "ulong"},
- [12] = &(TypeInfo){TYPE_LLONG, .size = sizeof(llong), .align = sizeof(llong), .name = "llong"},
- [13] = &(TypeInfo){TYPE_ULLONG, .size = sizeof(ullong), .align = sizeof(ullong), .name = "ullong"},
- [14] = &(TypeInfo){TYPE_FLOAT, .size = sizeof(float), .align = sizeof(float), .name = "float"},
- [15] = &(TypeInfo){TYPE_DOUBLE, .size = sizeof(double), .align = sizeof(double), .name = "double"},
- [16] = &(TypeInfo){TYPE_PTR, .size = sizeof(void *), .align = alignof(void *), .base = 1},
- [17] = NULL, // Enum
- [18] = &(TypeInfo){TYPE_STRUCT, .size = sizeof(TypeFieldInfo), .align = alignof(TypeFieldInfo), .name = "TypeFieldInfo", .num_fields = 3, .fields = (TypeFieldInfo[]) {
- {"name", .type = 31, .offset = offsetof(TypeFieldInfo, name)},
- {"type", .type = 8, .offset = offsetof(TypeFieldInfo, type)},
- {"offset", .type = 8, .offset = offsetof(TypeFieldInfo, offset)},
- }},
- [19] = &(TypeInfo){TYPE_STRUCT, .size = sizeof(TypeInfo), .align = alignof(TypeInfo), .name = "TypeInfo", .num_fields = 8, .fields = (TypeFieldInfo"S{"{"b", .type = 43, .offset = offsetof(S1, b)},
- }},
- [22] = &(TypeInfo){TYPE_STRUCT, .size = sizeof(S2), .align = alignof(S2), .name = "S2", .num_fields = 1, .fields = (TypeFieldInfo[]) {
- {"s1", .type = 21, .offset = offsetof(S2, s1)},
- }},
- [23] = &(TypeInfo){TYPE_STRUCT, .size = sizeof(UartCtrl), .align = alignof(UartCtrl), .name = "UartCtrl", .num_fields = 2, .fields = (TypeFieldInfo[]) {
- {"tx_enable", .type = 2, .offset = offsetof(UartCtrl, tx_enable)},
- {"rx_enable", .type = 2, .offset = offsetof(UartCtrl, rx_enable)},
- }},
- [24] = &(TypeInfo){TYPE_UNION, .size = sizeof(IntOrPtr), .align = alignof(IntOrPtr), .name = "IntOrPtr", .num_fields = 2, .fields = (TypeFieldInfo[]) {
- {"i", .type = 8, .offset = offsetof(IntOrPtr, i)},
- {"p", .type = 45, .offset = offsetof(IntOrPtr, p)},
- }},
- [25] = &(TypeInfo){TYPE_STRUCT, .size = sizeof(Vector), .align = alignof(Vector), .name = "Vector", .num_fields = 2, .fields = (TypeFieldInfo[]) {
- {"x", .type = 8, .offset = offsetof(Vector, x)},
- {"y", .type = 8, .offset = offsetof(Vector, y)},
- }},
- [26] = &(TypeInfo){TYPE_STRUCT, .size = sizeof(T), .align = alignof(T), .name = "T", .num_fields = 1, .fields = (TypeFieldInfo[]) {
- {"a", .type = 60, .offset = offsetof(T, a)},
- }},
- [27] = NULL, // Enum
- [28] = &(TypeInfo){TYPE_STRUCT, .size = sizeof(ConstVector), .align = alignof(ConstVector), .name = "ConstVector", .num_fields = 2, .fields = (TypeFieldInfo[]) {
- {"x", .type = 43, .offset = offsetof(ConstVector, x)},
- {"y", .type = 43, .offset = offsetof(ConstVector, y)},
- }},
- [29] = &(TypeInfo){TYPE_STRUCT, .size = sizeof(Any), .align = alignof(Any), .name = "Any", .num_fields = 2, .fields = (TypeFieldInfo[]) {
- {"ptr", .type = 16, .offset = offsetof(Any, ptr)},
- {"type", .type = 8, .offset = offsetof(Any, type)},
- }},
- [30] = &(TypeInfo){TYPE_CONST, .size = sizeof(char const ), .align = alignof(char const ), .base = 3},
- [31] = &(TypeInfo){TYPE_PTR, .size = sizeof(void *), .align = alignof(void *), .base = 30},
- [32] = &(TypeInfo){TYPE_PTR, .size = sizeof(void *), .align = alignof(void *), .base = 18},
- [33] = &(TypeInfo){TYPE_PTR, .size = sizeof(void *), .align = alignof(void *), .base = 19},
- [34] = &(TypeInfo){TYPE_PTR, .size = sizeof(void *), .align = alignof(void *), .base = 33},
- [35] = NULL, // Func
- [36] = NULL, // Func
- [37] = NULL, // Func
- [38] = NULL, // Func
- [39] = &(TypeInfo){TYPE_PTR, .size = sizeof(void *), .align = alignof(void *), .base = 20},
- [40] = NULL, // Func
- [41] = &(TypeInfo){TYPE_ARRAY, .size = sizeof(int [3]), .align = alignof(int [3]), .base = 8, .count = 3},
- [42] = &(TypeInfo){TYPE_PTR, .size = sizeof(void *), .align = alignof(void *), .base = 3},
- [43] = &(TypeInfo){TYPE_CONST, .size = sizeof(int const ), .align = alignof(int const ), .base = 8},
- [44] = NULL, // Func
- [45] = &(TypeInfo){TYPE_PTR, .size = sizeof(void *), .align = alignof(void *), .base = 8},
- [46] = NULL, // Func
- [47] = NULL, // Incomplete array type
- [48] = &(TypeInfo){TYPE_PTR, .size = sizeof(void *), .align = alignof(void *), .base = 9},
- [49] = NULL, // Func
- [50] = NULL, // Func
- [51] = &(TypeInfo){TYPE_PTR, .size = sizeof(void *), .align = alignof(void *), .base = 25},
- [52] = NULL, // Func
- [53] = NULL, // Func
- [54] = NULL, // Func
- [55] = NULL, // Func
- [56] = &(TypeInfo){TYPE_ARRAY, .size = sizeof(char const [256]), .align = alignof(char const [256]), .base = 30, .count = 256},
- [57] = &(TypeInfo){TYPE_ARRAY, .size = sizeof(int [11]), .align = alignof(int [11]), .base = 8, .count = 11},
- [58] = NULL, // Func
- [59] = &(TypeInfo){TYPE_PTR, .size = sizeof(void *), .align = alignof(void *), .base = 26},
- [60] = &(TypeInfo){TYPE_ARRAY, .size = sizeof(int [9]), .align = alignof(int [9]), .base = 8, .count = 9},
- [61] = &(TypeInfo){TYPE_ARRAY, .size = sizeof(char const (*[4])), .align = alignof(char const (*[4])), .base = 31, .count = 4},
- [62] = NULL, // Func
- [63] = NULL, // Func
- [64] = &(TypeInfo){TYPE_PTR, .size = sizeof(void *), .align = alignof(void *), .base = 43},
- [65] = &(TypeInfo){TYPE_CONST, .size = sizeof(Vector const ), .align = alignof(Vector const ), .base = 25},
- [66] = NULL, // Func
- [67] = NULL, // Func
- [68] = NULL, // Func
- [69] = &(TypeInfo){TYPE_CONST, .size = sizeof(float const ), .align = alignof(float const ), .base = 14},
- [70] = &(TypeInfo){TYPE_PTR, .size = sizeof(void *), .align = alignof(void *), .base = 69},
- [71] = &(TypeInfo){TYPE_PTR, .size = sizeof(void *), .align = alignof(void *), .base = 14},
- [72] = &(TypeInfo){TYPE_PTR, .size = sizeof(void *), .align = alignof(void *), .base = 45},
- [73] = &(TypeInfo){TYPE_ARRAY, .size = sizeof(int const (*[42])), .align = alignof(int const (*[42])), .base = 64, .count = 42},
- [74] = &(TypeInfo){TYPE_PTR, .size = sizeof(void *), .align = alignof(void *), .base = 31},
- [75] = NULL, // Func
- };
- int num_typeinfos = 76;
- TypeInfo **typeinfos = typeinfo_table;
- // Definitions
- #line 50 "<builtin>"
- TypeInfo (*get_typeinfo)) {
- if ((typeinfos) && ((type) < (num_typeinfos))) {
- return typeinfos[type];
- } else {
- return NULL;
- }
- }
- SomeIncompleteType (*incomplete_ptr);
- char c = 1; = 11;
- char (*code) =
- "\n"
- "#include <stdio.h>\n"
- "\n"
- "int main(int argc, char **argv) {\n"
- " printf(\"Hello, world!\\n\");\n"
- " return 0;\n"
- "}\n";
- #line 58 "..\\ion\\test1.ion"
- void f10(int (a[3])) {
- a[1] = 42;
- }
- void test_arrays(void) {
- int (a[3]) = {1, 2, 3};
- #line 65
- (f10)(a);
- }
- void test_loops(void) {
- #line 71
- switch (0) {
- default: {
- if (1) {
- break;
- }
- for (;;) {
- continue;
- }
- break;
- }
- }
- while (0) {
- }
- for (int i = 0; (i) < (10); i++) {
- }
- for (;;) {
- break;
- }
- for (int i = 0;;) {
- break;
- }
- for (; 0;) {
- }
- for (int i = 0;; i++) {
- break;
- }
- int i = 0;
- for (;; i++) {
- break;
- }
- }
- #line 102
- void test_nonmodifiable) {
- S1 s1;
- s1.a = 0;
- #line 107
- S2 s2;
- s2.s1.a = 0;
- }
- #line 120
- uint32 pack) {
- return ((ctrl.tx_enable) & (1)) | (((ctrl.rx_enable) & (1)) << (1));
- }
- UartCtrl unpack) {
- return (UartCtrl){.tx_enable = (word) & (0x1), .rx_enable = ((word) & (0x2)) >> (1)};
- }
- void test_uart(void) {
- bool tx_enable = (unpack)(*(UART_CTRL_REG)).tx_enable;
- *(UART_CTRL_REG) = (pack)((UartCtrl){.tx_enable = !(tx_enable), .rx_enable = false});
- UartCtrl ctrl = (unpack)(*(UART_CTRL_REG));
- ctrl.rx_enable = true;
- *(UART_CTRL_REG) = (pack)(ctrl);
- }
- uchar h(void) {
- (Vector){.x = 1, .y = 2}.x = 42;
- Vector (*v) = &((Vector){1, 2});
- v->x = 42;
- int (*p) = &((int){0});
- ulong x = ((uint){1}) + ((long){2});
- int y = +(c);
- return (uchar)(x);
- }
- int g(U u) {
- return u.i;
- }
- void k(void (*vp),) {
- vp = ip;
- ip = vp;
- }
- void f1(void) {
- int (*p) = &((int){0});
- *(p) = 42;
- }
- void f3(int (a[])) {
- }
- #line 165
- int example_test) {
- return ((fact_rec)(10)) == ((fact_iter)(10));
- }
- char const ((escape_to_char[256])) = {['n'] = '\n', ['r'] = '\r', ['t'] = '\t', ['v'] = '\v', ['b'] = '\b', ['a'] = '\a', ['0'] = 0};
- int (a2[11]) = {1, 2, 3, [10] = 4};
- #line 187
- int is_even) {
- int b = 0;
- switch (digit) {
- case 0:
- case 2:
- case 4:
- case 6:
- case 8: {
- #line 191
- b = 1;
- break;
- }
- }
- #line 193
- return b;
- }
- int i;
- #line 209
- void f2(Vector v) {
- v = (Vector){0};
- }
- int fact_iter(int n) {
- int r = 1;
- for (int i = 0; (i) <= (n); i++) {
- r *= i;
- }
- return r;
- }
- int fact_rec(int n) {
- if ((n) == (0)) {
- return 1;
- } else {
- return (n) * ((fact_rec)((n) - (1)));
- }
- }
- T (*p);
- char const ((*(color_names[NUM_COLORS]))) = {[COLOR_NONE] = "none", [COLOR_RED] = "red", [COLOR_GREEN] = "green", [COLOR_BLUE] = "blue"};
- #line 252
- void test_enum(void) {
- Color a = COLOR_RED;
- Color b = COLOR_RED;
- int c = (a) + (b);
- int i = a;
- a = i;
- (printf)("%d %d %d %d\n", COLOR_NONE, COLOR_RED, COLOR_GREEN, COLOR_BLUE);
- }
- void test_assign(void) {
- int i = 0;
- float f = 3.140000f;
- int (*p) = &(i);
- i++;
- i--;
- p++;
- p--;
- p += 1;
- i /= 2;
- i *= 123;
- i %= 3;
- i <<= 1;
- i >>= 2;
- i &= 0xff;
- i |= 0xff00;
- i ^= 0xff0;
- }
- #line 284
- void benchmark(int n) {
- int r = 1;
- for (int i = 1; (i) <= (n); i++) {
- r *= i;
- }
- }
- int va_test(int ) {
- return 0;
- }
- #line 297
- void test_lits(void) {
- float f = 3.140000f;
- double d = 3.140000;
- int i = 1;
- uint u = 0xffffffffu;
- long l = 1l;
- ulong ul = 1ul;
- llong ll = 0x100000000ll;
- ullong ull = 0xffffffffffffffffull;
- uint x1 = 0xffffffff;
- llong x2 = 4294967295;
- ullong x3 = 0xffffffffffffffff;
- int x4 = (0xaa) + (0x55);
- }
- #line 314
- void test_ops(void) {
- float pi = 3.140000f;
- float f = 0.000000f;
- f = +(pi);
- f = -(pi);
- int n = -(1);
- n = ~(n);
- f = ((f) * (pi)) + (n);
- f = (pi) / (pi);
- n = (3) % (2);
- n = (n) + ((uchar)(1));
- int (*p) = &(n);
- p = (p) + (1);
- n = (int)(((p) + (1)) - (p));
- n = (n) << (1);
- n = (n) >> (1);
- int b = ((p) + (1)) > (p);
- b = ((p) + (1)) >= (p);
- b = ((p) + (1)) < (p);
- b = ((p) + (1)) <= (p);
- b = ((p) + (1)) == (p);
- b = (1) > (2);
- b = (1.230000f) <= (pi);
- n = 0xff;
- b = (n) & (~(1));
- b = (n) & (1);
- b = ((n) & (~(1))) ^ (1);
- b = (p) && (pi);
- }
- #line 346
- void test_bool(void) {
- bool b = false;
- b = true;
- int i = 0;
- i = IS_DEBUG;
- }
- int test_ctrl(void) {
- switch (1) {
- case 0: {
- return 0;
- break;
- }
- default: {
- #line 358
- return 1;
- break;
- }
- }
- }
- int const (j);
- int const ((*q));
- Vector const (cv);
- void f4) {
- }
- #line 374
- void f5) {
- }
- void test_convert) {
- int const ((*a)) = 0;
- int (*b) = 0;
- a = b;
- void (*p) = 0;
- (f5)(p);
- }
- void test_const(void) {
- ConstVector cv2 = {1, 2};
- #line 388
- int i = 0;
- i = 1;
- #line 392
- int x = cv.x;
- #line 394
- char c = escape_to_char[0];
- #line 396
- (f4)(escape_to_char);
- char const ((*p)) = (char const (*))(0);
- p = (escape_to_char) + (1);
- char (*q) = (char *)(escape_to_char);
- c = q['n'];
- #line 402
- p = (char const (*))(1);
- #line 405
- i = (int)((ullong)(p));
- }
- void test_init(void) {
- int x = (int const )(0);
- int y;
- y = 0;
- int z = 42;
- int (a[3]) = {1, 2, 3};
- #line 416
- for (ullong i = 0; (i) < (10); i++) {
- (printf)("%llu\n", i);
- }
- }
- void test_sizeof(void) {
- int i = 0;
- ullong n = sizeof(i);
- n = sizeof(int);
- n = sizeof(int);
- n = sizeof(int *);
- }
- void test_cast(void) {
- int (*p) = 0;
- uint64 a = 0;
- #line 433
- a = (uint64)(p);
- #line 435
- p = (int *)(a);
- }
- #line 443
- void print_any) {
- switch (any.type) {
- case 8: {
- (printf)("%d", *((int const (*))(any.ptr)));
- break;
- }
- case 14: {
- #line 448
- (printf)("%f", *((float const (*))(any.ptr)));
- break;
- }
- default: {
- #line 450
- (printf)("<unknown>");
- break;
- }
- }
- #line 452
- (printf)(": ");
- (print_type)(any.type);
- }
- void println_any) {
- (print_any)(any);
- (printf)("\n");
- }
- void print_type) {
- TypeInfo (*typeinfo) = (get_typeinfo)(type);
- if (!(typeinfo)) {
- (printf)("<typeid %d>", type);
- }
- switch (typeinfo->kind) {
- case TYPE_PTR: {
- (print_type)(typeinfo->base);
- (printf)("*");
- break;
- }
- case TYPE_CONST: {
- #line 471
- (print_type)(typeinfo->base);
- (printf)(" const");
- break;
- }
- case TYPE_ARRAY: {
- #line 474
- (print_type)(typeinfo->base);
- (printf)("[%d]", typeinfo->count);
- break;
- }
- default: {
- #line 477
- if (typeinfo->name) {
- (printf)("%s", typeinfo->name);
- } else {
- (printf)("typeid %d>", type);
- }
- break;
- }
- }
- }
- #line 485
- void println_type) {
- (print_type)(type);
- (printf)("\n");
- }
- void print_typeinfo) {
- TypeInfo (*typeinfo) = (get_typeinfo)(type);
- if (!(typeinfo)) {
- (printf)("<typeid %d>", type);
- return;
- }
- (printf)("<");
- (print_type)(type);
- (printf)(" size=%d align=%d", typeinfo->size, typeinfo->align);
- switch (typeinfo->kind) {
- case TYPE_STRUCT:
- case TYPE_UNION: {
- (printf)(" %s={ ", ((typeinfo->kind) == (TYPE_STRUCT) ? "struct" : "union"));
- for (int i = 0; (i) < (typeinfo->num_fields); i++) {
- TypeFieldInfo field = typeinfo->fields[i];
- (printf)("@offset(%d) %s: ", field.offset, field.name);
- (print_type)(field.type);
- (printf)("; ");
- }
- (printf)("}");
- break;
- }
- }
- #line 511
- (printf)(">");
- }
- void println_typeinfo) {
- (print_typeinfo)(type);
- (printf)("\n");
- }
- void test_typeof(void) {
- int i = 42;
- float f = 3.140000f;
- int (*p) = &(i);
- #line 524
- int type1 = 8;
- int type2 = 8;
- int type3 = 8;
- int type4 = 45;
- #line 529
- (println_any)((Any){&(i), 8});
- (println_any)((Any){&(f), 14});
- (println_any)((Any){&(p), 45});
- }
- void test_typeinfo) {
- (println_typeinfo)(8);
- (println_typeinfo)(23);
- (println_type)(8);
- (println_type)(64);
- (println_type)(73);
- (println_type)(23);
- }
- int main(int argc,) {
- if ((argv) == (0)) {
- (printf)("argv is null\n");
- }
- (test_typeof)();
- (test_loops)();
- (test_sizeof)();
- (test_assign)();
- (test_enum)();
- (test_arrays)();
- (test_cast)();
- (test_init)();
- (test_lits)();
- (test_const)();
- (test_bool)();
- (test_ops)();
- (test_typeinfo)();
- (getchar)();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement