| ... | @@ -1,9 +1,11 @@ | ... | @@ -1,9 +1,11 @@ |
| 1 | const tests = @import("tests.zig"); | 1 | const tests = @import("tests.zig"); |
| 2 | const builtin = @import("builtin"); | 2 | const builtin = @import("builtin"); |
| 3 | | 3 | |
| 4 | // add_both - test for stage1 and stage2 | 4 | // add_both - test for stage1 and stage2, in #include mode |
| 5 | // add - test stage1 only | 5 | // add - test stage1 only, in #include mode |
| 6 | // add_2 - test stage2 only | 6 | // add_2 - test stage2 only |
| | 7 | // addC_both - test for stage1 and stage2, in -c mode |
| | 8 | // addC - test stage1 only, in -c mode |
| 7 | | 9 | |
| 8 | pub fn addCases(cases: *tests.TranslateCContext) void { | 10 | pub fn addCases(cases: *tests.TranslateCContext) void { |
| 9 | /////////////// Cases that pass for both stage1/stage2 //////////////// | 11 | /////////////// Cases that pass for both stage1/stage2 //////////////// |
| ... | @@ -15,7 +17,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -15,7 +17,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 15 | \\pub extern fn bar() c_int; | 17 | \\pub extern fn bar() c_int; |
| 16 | }); | 18 | }); |
| 17 | | 19 | |
| 18 | cases.add_both("simple var decls", | 20 | cases.addC_both("simple var decls", |
| 19 | \\void foo(void) { | 21 | \\void foo(void) { |
| 20 | \\ int a; | 22 | \\ int a; |
| 21 | \\ char b = 123; | 23 | \\ char b = 123; |
| ... | @@ -31,7 +33,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -31,7 +33,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 31 | \\} | 33 | \\} |
| 32 | }); | 34 | }); |
| 33 | | 35 | |
| 34 | cases.add_both("ignore result, explicit function arguments", | 36 | cases.addC_both("ignore result, explicit function arguments", |
| 35 | \\void foo(void) { | 37 | \\void foo(void) { |
| 36 | \\ int a; | 38 | \\ int a; |
| 37 | \\ 1; | 39 | \\ 1; |
| ... | @@ -51,7 +53,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -51,7 +53,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 51 | \\} | 53 | \\} |
| 52 | }); | 54 | }); |
| 53 | | 55 | |
| 54 | cases.add_both("variables", | 56 | cases.addC_both("variables", |
| 55 | \\extern int extern_var; | 57 | \\extern int extern_var; |
| 56 | \\static const int int_var = 13; | 58 | \\static const int int_var = 13; |
| 57 | , &[_][]const u8{ | 59 | , &[_][]const u8{ |
| ... | @@ -66,7 +68,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -66,7 +68,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 66 | \\pub var v0: [*c]const u8 = "0.0.0"; | 68 | \\pub var v0: [*c]const u8 = "0.0.0"; |
| 67 | }); | 69 | }); |
| 68 | | 70 | |
| 69 | cases.add_both("static incomplete array inside function", | 71 | cases.addC_both("static incomplete array inside function", |
| 70 | \\void foo(void) { | 72 | \\void foo(void) { |
| 71 | \\ static const char v2[] = "2.2.2"; | 73 | \\ static const char v2[] = "2.2.2"; |
| 72 | \\} | 74 | \\} |
| ... | @@ -76,7 +78,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -76,7 +78,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 76 | \\} | 78 | \\} |
| 77 | }); | 79 | }); |
| 78 | | 80 | |
| 79 | cases.add_both("simple function definition", | 81 | cases.addC_both("simple function definition", |
| 80 | \\void foo(void) {} | 82 | \\void foo(void) {} |
| 81 | \\static void bar(void) {} | 83 | \\static void bar(void) {} |
| 82 | , &[_][]const u8{ | 84 | , &[_][]const u8{ |
| ... | @@ -104,7 +106,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -104,7 +106,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 104 | \\pub const baz = c_int; | 106 | \\pub const baz = c_int; |
| 105 | }); | 107 | }); |
| 106 | | 108 | |
| 107 | cases.add_both("casting pointers to ints and ints to pointers", | 109 | cases.addC_both("casting pointers to ints and ints to pointers", |
| 108 | \\void foo(void); | 110 | \\void foo(void); |
| 109 | \\void bar(void) { | 111 | \\void bar(void) { |
| 110 | \\ void *func_ptr = foo; | 112 | \\ void *func_ptr = foo; |
| ... | @@ -124,7 +126,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -124,7 +126,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 124 | \\pub extern fn foo() noreturn; | 126 | \\pub extern fn foo() noreturn; |
| 125 | }); | 127 | }); |
| 126 | | 128 | |
| 127 | cases.add_both("add, sub, mul, div, rem", | 129 | cases.addC_both("add, sub, mul, div, rem", |
| 128 | \\int s(int a, int b) { | 130 | \\int s(int a, int b) { |
| 129 | \\ int c; | 131 | \\ int c; |
| 130 | \\ c = a + b; | 132 | \\ c = a + b; |
| ... | @@ -284,7 +286,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -284,7 +286,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 284 | \\ __PRETTY_FUNCTION__; | 286 | \\ __PRETTY_FUNCTION__; |
| 285 | \\} | 287 | \\} |
| 286 | , &[_][]const u8{ | 288 | , &[_][]const u8{ |
| 287 | \\pub export fn foo() void { | 289 | \\pub fn foo() void { |
| 288 | \\ _ = "foo"; | 290 | \\ _ = "foo"; |
| 289 | \\ _ = "foo"; | 291 | \\ _ = "foo"; |
| 290 | \\ _ = "void foo(void)"; | 292 | \\ _ = "void foo(void)"; |
| ... | @@ -301,7 +303,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -301,7 +303,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 301 | \\ a = 1; | 303 | \\ a = 1; |
| 302 | \\} | 304 | \\} |
| 303 | , &[_][]const u8{ | 305 | , &[_][]const u8{ |
| 304 | \\pub export fn foo() void { | 306 | \\pub fn foo() void { |
| 305 | \\ var a: c_int = undefined; | 307 | \\ var a: c_int = undefined; |
| 306 | \\ _ = 1; | 308 | \\ _ = 1; |
| 307 | \\ _ = "hey"; | 309 | \\ _ = "hey"; |
| ... | @@ -316,7 +318,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -316,7 +318,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 316 | \\ for (int x = 0; x < 10; x++); | 318 | \\ for (int x = 0; x < 10; x++); |
| 317 | \\} | 319 | \\} |
| 318 | , &[_][]const u8{ | 320 | , &[_][]const u8{ |
| 319 | \\pub export fn foo() void { | 321 | \\pub fn foo() void { |
| 320 | \\ { | 322 | \\ { |
| 321 | \\ var x: c_int = 0; | 323 | \\ var x: c_int = 0; |
| 322 | \\ while (x < 10) : (x += 1) {} | 324 | \\ while (x < 10) : (x += 1) {} |
| ... | @@ -329,7 +331,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -329,7 +331,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 329 | \\ do ; while (1); | 331 | \\ do ; while (1); |
| 330 | \\} | 332 | \\} |
| 331 | , &[_][]const u8{ // TODO this should be if (1 != 0) break | 333 | , &[_][]const u8{ // TODO this should be if (1 != 0) break |
| 332 | \\pub export fn foo() void { | 334 | \\pub fn foo() void { |
| 333 | \\ while (true) { | 335 | \\ while (true) { |
| 334 | \\ {} | 336 | \\ {} |
| 335 | \\ if (!1) break; | 337 | \\ if (!1) break; |
| ... | @@ -342,7 +344,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -342,7 +344,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 342 | \\ for (;;); | 344 | \\ for (;;); |
| 343 | \\} | 345 | \\} |
| 344 | , &[_][]const u8{ | 346 | , &[_][]const u8{ |
| 345 | \\pub export fn foo() void { | 347 | \\pub fn foo() void { |
| 346 | \\ while (true) {} | 348 | \\ while (true) {} |
| 347 | \\} | 349 | \\} |
| 348 | }); | 350 | }); |
| ... | @@ -352,7 +354,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -352,7 +354,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 352 | \\ while (1); | 354 | \\ while (1); |
| 353 | \\} | 355 | \\} |
| 354 | , &[_][]const u8{ | 356 | , &[_][]const u8{ |
| 355 | \\pub export fn foo() void { | 357 | \\pub fn foo() void { |
| 356 | \\ while (1 != 0) {} | 358 | \\ while (1 != 0) {} |
| 357 | \\} | 359 | \\} |
| 358 | }); | 360 | }); |
| ... | @@ -392,7 +394,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -392,7 +394,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 392 | \\pub extern fn baz(a: i8, b: i16, c: i32, d: i64) void; | 394 | \\pub extern fn baz(a: i8, b: i16, c: i32, d: i64) void; |
| 393 | }); | 395 | }); |
| 394 | | 396 | |
| 395 | cases.add("simple function", | 397 | cases.addC("simple function", |
| 396 | \\int abs(int a) { | 398 | \\int abs(int a) { |
| 397 | \\ return a < 0 ? -a : a; | 399 | \\ return a < 0 ? -a : a; |
| 398 | \\} | 400 | \\} |
| ... | @@ -690,7 +692,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -690,7 +692,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 690 | \\pub const LUA_GLOBALSINDEX = -10002; | 692 | \\pub const LUA_GLOBALSINDEX = -10002; |
| 691 | }); | 693 | }); |
| 692 | | 694 | |
| 693 | cases.add("post increment", | 695 | cases.addC("post increment", |
| 694 | \\unsigned foo1(unsigned a) { | 696 | \\unsigned foo1(unsigned a) { |
| 695 | \\ a++; | 697 | \\ a++; |
| 696 | \\ return a; | 698 | \\ return a; |
| ... | @@ -712,7 +714,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -712,7 +714,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 712 | \\} | 714 | \\} |
| 713 | }); | 715 | }); |
| 714 | | 716 | |
| 715 | cases.add("shift right assign", | 717 | cases.addC("shift right assign", |
| 716 | \\int log2(unsigned a) { | 718 | \\int log2(unsigned a) { |
| 717 | \\ int i = 0; | 719 | \\ int i = 0; |
| 718 | \\ while (a > 0) { | 720 | \\ while (a > 0) { |
| ... | @@ -731,7 +733,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -731,7 +733,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 731 | \\} | 733 | \\} |
| 732 | }); | 734 | }); |
| 733 | | 735 | |
| 734 | cases.add("if statement", | 736 | cases.addC("if statement", |
| 735 | \\int max(int a, int b) { | 737 | \\int max(int a, int b) { |
| 736 | \\ if (a < b) | 738 | \\ if (a < b) |
| 737 | \\ return b; | 739 | \\ return b; |
| ... | @@ -751,7 +753,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -751,7 +753,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 751 | \\} | 753 | \\} |
| 752 | }); | 754 | }); |
| 753 | | 755 | |
| 754 | cases.add("==, !=", | 756 | cases.addC("==, !=", |
| 755 | \\int max(int a, int b) { | 757 | \\int max(int a, int b) { |
| 756 | \\ if (a == b) | 758 | \\ if (a == b) |
| 757 | \\ return a; | 759 | \\ return a; |
| ... | @@ -767,7 +769,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -767,7 +769,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 767 | \\} | 769 | \\} |
| 768 | }); | 770 | }); |
| 769 | | 771 | |
| 770 | cases.add("bitwise binary operators", | 772 | cases.addC("bitwise binary operators", |
| 771 | \\int max(int a, int b) { | 773 | \\int max(int a, int b) { |
| 772 | \\ return (a & b) ^ (a | b); | 774 | \\ return (a & b) ^ (a | b); |
| 773 | \\} | 775 | \\} |
| ... | @@ -777,7 +779,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -777,7 +779,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 777 | \\} | 779 | \\} |
| 778 | }); | 780 | }); |
| 779 | | 781 | |
| 780 | cases.add("logical and, logical or", | 782 | cases.addC("logical and, logical or", |
| 781 | \\int max(int a, int b) { | 783 | \\int max(int a, int b) { |
| 782 | \\ if (a < b || a == b) | 784 | \\ if (a < b || a == b) |
| 783 | \\ return b; | 785 | \\ return b; |
| ... | @@ -793,7 +795,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -793,7 +795,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 793 | \\} | 795 | \\} |
| 794 | }); | 796 | }); |
| 795 | | 797 | |
| 796 | cases.add("logical and, logical or on none bool values", | 798 | cases.addC("logical and, logical or on none bool values", |
| 797 | \\int and_or_none_bool(int a, float b, void *c) { | 799 | \\int and_or_none_bool(int a, float b, void *c) { |
| 798 | \\ if (a && b) return 0; | 800 | \\ if (a && b) return 0; |
| 799 | \\ if (b && c) return 1; | 801 | \\ if (b && c) return 1; |
| ... | @@ -815,7 +817,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -815,7 +817,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 815 | \\} | 817 | \\} |
| 816 | }); | 818 | }); |
| 817 | | 819 | |
| 818 | cases.add("assign", | 820 | cases.addC("assign", |
| 819 | \\int max(int a) { | 821 | \\int max(int a) { |
| 820 | \\ int tmp; | 822 | \\ int tmp; |
| 821 | \\ tmp = a; | 823 | \\ tmp = a; |
| ... | @@ -830,7 +832,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -830,7 +832,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 830 | \\} | 832 | \\} |
| 831 | }); | 833 | }); |
| 832 | | 834 | |
| 833 | cases.add("chaining assign", | 835 | cases.addC("chaining assign", |
| 834 | \\void max(int a) { | 836 | \\void max(int a) { |
| 835 | \\ int b, c; | 837 | \\ int b, c; |
| 836 | \\ c = b = a; | 838 | \\ c = b = a; |
| ... | @@ -847,7 +849,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -847,7 +849,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 847 | \\} | 849 | \\} |
| 848 | }); | 850 | }); |
| 849 | | 851 | |
| 850 | cases.add("shift right assign with a fixed size type", | 852 | cases.addC("shift right assign with a fixed size type", |
| 851 | \\#include <stdint.h> | 853 | \\#include <stdint.h> |
| 852 | \\int log2(uint32_t a) { | 854 | \\int log2(uint32_t a) { |
| 853 | \\ int i = 0; | 855 | \\ int i = 0; |
| ... | @@ -877,7 +879,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -877,7 +879,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 877 | \\pub const Two = 1; | 879 | \\pub const Two = 1; |
| 878 | }); | 880 | }); |
| 879 | | 881 | |
| 880 | cases.add("function call", | 882 | cases.addC("function call", |
| 881 | \\static void bar(void) { } | 883 | \\static void bar(void) { } |
| 882 | \\static int baz(void) { return 0; } | 884 | \\static int baz(void) { return 0; } |
| 883 | \\void foo(void) { | 885 | \\void foo(void) { |
| ... | @@ -895,7 +897,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -895,7 +897,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 895 | \\} | 897 | \\} |
| 896 | }); | 898 | }); |
| 897 | | 899 | |
| 898 | cases.add("field access expression", | 900 | cases.addC("field access expression", |
| 899 | \\struct Foo { | 901 | \\struct Foo { |
| 900 | \\ int field; | 902 | \\ int field; |
| 901 | \\}; | 903 | \\}; |
| ... | @@ -911,7 +913,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -911,7 +913,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 911 | \\} | 913 | \\} |
| 912 | }); | 914 | }); |
| 913 | | 915 | |
| 914 | cases.add("null statements", | 916 | cases.addC("null statements", |
| 915 | \\void foo(void) { | 917 | \\void foo(void) { |
| 916 | \\ ;;;;; | 918 | \\ ;;;;; |
| 917 | \\} | 919 | \\} |
| ... | @@ -931,7 +933,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -931,7 +933,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 931 | \\pub var array: [100]c_int = undefined; | 933 | \\pub var array: [100]c_int = undefined; |
| 932 | }); | 934 | }); |
| 933 | | 935 | |
| 934 | cases.add("array access", | 936 | cases.addC("array access", |
| 935 | \\int array[100]; | 937 | \\int array[100]; |
| 936 | \\int foo(int index) { | 938 | \\int foo(int index) { |
| 937 | \\ return array[index]; | 939 | \\ return array[index]; |
| ... | @@ -943,7 +945,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -943,7 +945,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 943 | \\} | 945 | \\} |
| 944 | }); | 946 | }); |
| 945 | | 947 | |
| 946 | cases.add("c style cast", | 948 | cases.addC("c style cast", |
| 947 | \\int float_to_int(float a) { | 949 | \\int float_to_int(float a) { |
| 948 | \\ return (int)a; | 950 | \\ return (int)a; |
| 949 | \\} | 951 | \\} |
| ... | @@ -953,7 +955,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -953,7 +955,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 953 | \\} | 955 | \\} |
| 954 | }); | 956 | }); |
| 955 | | 957 | |
| 956 | cases.add("void cast", | 958 | cases.addC("void cast", |
| 957 | \\void foo(int a) { | 959 | \\void foo(int a) { |
| 958 | \\ (void) a; | 960 | \\ (void) a; |
| 959 | \\} | 961 | \\} |
| ... | @@ -963,7 +965,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -963,7 +965,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 963 | \\} | 965 | \\} |
| 964 | }); | 966 | }); |
| 965 | | 967 | |
| 966 | cases.add("implicit cast to void *", | 968 | cases.addC("implicit cast to void *", |
| 967 | \\void *foo(unsigned short *x) { | 969 | \\void *foo(unsigned short *x) { |
| 968 | \\ return x; | 970 | \\ return x; |
| 969 | \\} | 971 | \\} |
| ... | @@ -973,7 +975,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -973,7 +975,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 973 | \\} | 975 | \\} |
| 974 | }); | 976 | }); |
| 975 | | 977 | |
| 976 | cases.add("sizeof", | 978 | cases.addC("sizeof", |
| 977 | \\#include <stddef.h> | 979 | \\#include <stddef.h> |
| 978 | \\size_t size_of(void) { | 980 | \\size_t size_of(void) { |
| 979 | \\ return sizeof(int); | 981 | \\ return sizeof(int); |
| ... | @@ -984,7 +986,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -984,7 +986,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 984 | \\} | 986 | \\} |
| 985 | }); | 987 | }); |
| 986 | | 988 | |
| 987 | cases.add("null pointer implicit cast", | 989 | cases.addC("null pointer implicit cast", |
| 988 | \\int* foo(void) { | 990 | \\int* foo(void) { |
| 989 | \\ return 0; | 991 | \\ return 0; |
| 990 | \\} | 992 | \\} |
| ... | @@ -994,7 +996,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -994,7 +996,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 994 | \\} | 996 | \\} |
| 995 | }); | 997 | }); |
| 996 | | 998 | |
| 997 | cases.add("comma operator", | 999 | cases.addC("comma operator", |
| 998 | \\int foo(void) { | 1000 | \\int foo(void) { |
| 999 | \\ return 1, 2; | 1001 | \\ return 1, 2; |
| 1000 | \\} | 1002 | \\} |
| ... | @@ -1007,7 +1009,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1007,7 +1009,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1007 | \\} | 1009 | \\} |
| 1008 | }); | 1010 | }); |
| 1009 | | 1011 | |
| 1010 | cases.add("statement expression", | 1012 | cases.addC("statement expression", |
| 1011 | \\int foo(void) { | 1013 | \\int foo(void) { |
| 1012 | \\ return ({ | 1014 | \\ return ({ |
| 1013 | \\ int a = 1; | 1015 | \\ int a = 1; |
| ... | @@ -1023,7 +1025,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1023,7 +1025,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1023 | \\} | 1025 | \\} |
| 1024 | }); | 1026 | }); |
| 1025 | | 1027 | |
| 1026 | cases.add("__extension__ cast", | 1028 | cases.addC("__extension__ cast", |
| 1027 | \\int foo(void) { | 1029 | \\int foo(void) { |
| 1028 | \\ return __extension__ 1; | 1030 | \\ return __extension__ 1; |
| 1029 | \\} | 1031 | \\} |
| ... | @@ -1033,7 +1035,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1033,7 +1035,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1033 | \\} | 1035 | \\} |
| 1034 | }); | 1036 | }); |
| 1035 | | 1037 | |
| 1036 | cases.add("bitshift", | 1038 | cases.addC("bitshift", |
| 1037 | \\int foo(void) { | 1039 | \\int foo(void) { |
| 1038 | \\ return (1 << 2) >> 1; | 1040 | \\ return (1 << 2) >> 1; |
| 1039 | \\} | 1041 | \\} |
| ... | @@ -1043,7 +1045,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1043,7 +1045,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1043 | \\} | 1045 | \\} |
| 1044 | }); | 1046 | }); |
| 1045 | | 1047 | |
| 1046 | cases.add("compound assignment operators", | 1048 | cases.addC("compound assignment operators", |
| 1047 | \\void foo(void) { | 1049 | \\void foo(void) { |
| 1048 | \\ int a = 0; | 1050 | \\ int a = 0; |
| 1049 | \\ a += (a += 1); | 1051 | \\ a += (a += 1); |
| ... | @@ -1101,7 +1103,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1101,7 +1103,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1101 | \\} | 1103 | \\} |
| 1102 | }); | 1104 | }); |
| 1103 | | 1105 | |
| 1104 | cases.add("compound assignment operators unsigned", | 1106 | cases.addC("compound assignment operators unsigned", |
| 1105 | \\void foo(void) { | 1107 | \\void foo(void) { |
| 1106 | \\ unsigned a = 0; | 1108 | \\ unsigned a = 0; |
| 1107 | \\ a += (a += 1); | 1109 | \\ a += (a += 1); |
| ... | @@ -1159,7 +1161,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1159,7 +1161,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1159 | \\} | 1161 | \\} |
| 1160 | }); | 1162 | }); |
| 1161 | | 1163 | |
| 1162 | cases.add("post increment/decrement", | 1164 | cases.addC("post increment/decrement", |
| 1163 | \\void foo(void) { | 1165 | \\void foo(void) { |
| 1164 | \\ int i = 0; | 1166 | \\ int i = 0; |
| 1165 | \\ unsigned u = 0; | 1167 | \\ unsigned u = 0; |
| ... | @@ -1207,7 +1209,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1207,7 +1209,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1207 | \\} | 1209 | \\} |
| 1208 | }); | 1210 | }); |
| 1209 | | 1211 | |
| 1210 | cases.add("pre increment/decrement", | 1212 | cases.addC("pre increment/decrement", |
| 1211 | \\void foo(void) { | 1213 | \\void foo(void) { |
| 1212 | \\ int i = 0; | 1214 | \\ int i = 0; |
| 1213 | \\ unsigned u = 0; | 1215 | \\ unsigned u = 0; |
| ... | @@ -1251,7 +1253,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1251,7 +1253,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1251 | \\} | 1253 | \\} |
| 1252 | }); | 1254 | }); |
| 1253 | | 1255 | |
| 1254 | cases.add("do loop", | 1256 | cases.addC("do loop", |
| 1255 | \\void foo(void) { | 1257 | \\void foo(void) { |
| 1256 | \\ int a = 2; | 1258 | \\ int a = 2; |
| 1257 | \\ do { | 1259 | \\ do { |
| ... | @@ -1278,7 +1280,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1278,7 +1280,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1278 | \\} | 1280 | \\} |
| 1279 | }); | 1281 | }); |
| 1280 | | 1282 | |
| 1281 | cases.add("deref function pointer", | 1283 | cases.addC("deref function pointer", |
| 1282 | \\void foo(void) {} | 1284 | \\void foo(void) {} |
| 1283 | \\int baz(void) { return 0; } | 1285 | \\int baz(void) { return 0; } |
| 1284 | \\void bar(void) { | 1286 | \\void bar(void) { |
| ... | @@ -1308,7 +1310,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1308,7 +1310,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1308 | \\} | 1310 | \\} |
| 1309 | }); | 1311 | }); |
| 1310 | | 1312 | |
| 1311 | cases.add("normal deref", | 1313 | cases.addC("normal deref", |
| 1312 | \\void foo(int *x) { | 1314 | \\void foo(int *x) { |
| 1313 | \\ *x = 1; | 1315 | \\ *x = 1; |
| 1314 | \\} | 1316 | \\} |
| ... | @@ -1339,7 +1341,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1339,7 +1341,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1339 | \\ return *ptr; | 1341 | \\ return *ptr; |
| 1340 | \\} | 1342 | \\} |
| 1341 | , &[_][]const u8{ | 1343 | , &[_][]const u8{ |
| 1342 | \\pub export fn foo() c_int { | 1344 | \\pub fn foo() c_int { |
| 1343 | \\ var x: c_int = 1234; | 1345 | \\ var x: c_int = 1234; |
| 1344 | \\ var ptr: [*c]c_int = &x; | 1346 | \\ var ptr: [*c]c_int = &x; |
| 1345 | \\ return ptr.?.*; | 1347 | \\ return ptr.?.*; |
| ... | @@ -1351,7 +1353,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1351,7 +1353,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1351 | \\ return "bar"; | 1353 | \\ return "bar"; |
| 1352 | \\} | 1354 | \\} |
| 1353 | , &[_][]const u8{ | 1355 | , &[_][]const u8{ |
| 1354 | \\pub export fn foo() [*c]const u8 { | 1356 | \\pub fn foo() [*c]const u8 { |
| 1355 | \\ return "bar"; | 1357 | \\ return "bar"; |
| 1356 | \\} | 1358 | \\} |
| 1357 | }); | 1359 | }); |
| ... | @@ -1361,7 +1363,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1361,7 +1363,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1361 | \\ return; | 1363 | \\ return; |
| 1362 | \\} | 1364 | \\} |
| 1363 | , &[_][]const u8{ | 1365 | , &[_][]const u8{ |
| 1364 | \\pub export fn foo() void { | 1366 | \\pub fn foo() void { |
| 1365 | \\ return; | 1367 | \\ return; |
| 1366 | \\} | 1368 | \\} |
| 1367 | }); | 1369 | }); |
| ... | @@ -1371,7 +1373,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1371,7 +1373,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1371 | \\ for (int i = 0; i < 10; i += 1) { } | 1373 | \\ for (int i = 0; i < 10; i += 1) { } |
| 1372 | \\} | 1374 | \\} |
| 1373 | , &[_][]const u8{ | 1375 | , &[_][]const u8{ |
| 1374 | \\pub export fn foo() void { | 1376 | \\pub fn foo() void { |
| 1375 | \\ { | 1377 | \\ { |
| 1376 | \\ var i: c_int = 0; | 1378 | \\ var i: c_int = 0; |
| 1377 | \\ while (i < 10) : (i += 1) {} | 1379 | \\ while (i < 10) : (i += 1) {} |
| ... | @@ -1384,7 +1386,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1384,7 +1386,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1384 | \\ for (;;) { } | 1386 | \\ for (;;) { } |
| 1385 | \\} | 1387 | \\} |
| 1386 | , &[_][]const u8{ | 1388 | , &[_][]const u8{ |
| 1387 | \\pub export fn foo() void { | 1389 | \\pub fn foo() void { |
| 1388 | \\ while (true) {} | 1390 | \\ while (true) {} |
| 1389 | \\} | 1391 | \\} |
| 1390 | }); | 1392 | }); |
| ... | @@ -1396,7 +1398,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1396,7 +1398,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1396 | \\ } | 1398 | \\ } |
| 1397 | \\} | 1399 | \\} |
| 1398 | , &[_][]const u8{ | 1400 | , &[_][]const u8{ |
| 1399 | \\pub export fn foo() void { | 1401 | \\pub fn foo() void { |
| 1400 | \\ while (true) { | 1402 | \\ while (true) { |
| 1401 | \\ break; | 1403 | \\ break; |
| 1402 | \\ } | 1404 | \\ } |
| ... | @@ -1410,7 +1412,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1410,7 +1412,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1410 | \\ } | 1412 | \\ } |
| 1411 | \\} | 1413 | \\} |
| 1412 | , &[_][]const u8{ | 1414 | , &[_][]const u8{ |
| 1413 | \\pub export fn foo() void { | 1415 | \\pub fn foo() void { |
| 1414 | \\ while (true) { | 1416 | \\ while (true) { |
| 1415 | \\ continue; | 1417 | \\ continue; |
| 1416 | \\ } | 1418 | \\ } |
| ... | @@ -1465,7 +1467,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1465,7 +1467,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1465 | \\ return x; | 1467 | \\ return x; |
| 1466 | \\} | 1468 | \\} |
| 1467 | , &[_][]const u8{ | 1469 | , &[_][]const u8{ |
| 1468 | \\pub export fn foo() c_int { | 1470 | \\pub fn foo() c_int { |
| 1469 | \\ var x: c_int = 1; | 1471 | \\ var x: c_int = 1; |
| 1470 | \\ { | 1472 | \\ { |
| 1471 | \\ var x_0: c_int = 2; | 1473 | \\ var x_0: c_int = 2; |
| ... | @@ -1490,7 +1492,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1490,7 +1492,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1490 | \\ return ~x; | 1492 | \\ return ~x; |
| 1491 | \\} | 1493 | \\} |
| 1492 | , &[_][]const u8{ | 1494 | , &[_][]const u8{ |
| 1493 | \\pub export fn foo(x: c_int) c_int { | 1495 | \\pub fn foo(x: c_int) c_int { |
| 1494 | \\ return ~x; | 1496 | \\ return ~x; |
| 1495 | \\} | 1497 | \\} |
| 1496 | }); | 1498 | }); |
| ... | @@ -1503,7 +1505,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1503,7 +1505,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1503 | \\ return !c; | 1505 | \\ return !c; |
| 1504 | \\} | 1506 | \\} |
| 1505 | , &[_][]const u8{ | 1507 | , &[_][]const u8{ |
| 1506 | \\pub export fn foo(a: c_int, b: f32, c: ?*c_void) c_int { | 1508 | \\pub fn foo(a: c_int, b: f32, c: ?*c_void) c_int { |
| 1507 | \\ return !(a == 0); | 1509 | \\ return !(a == 0); |
| 1508 | \\ return !(a != 0); | 1510 | \\ return !(a != 0); |
| 1509 | \\ return !(b != 0); | 1511 | \\ return !(b != 0); |
| ... | @@ -1516,7 +1518,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1516,7 +1518,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1516 | \\ return u32; | 1518 | \\ return u32; |
| 1517 | \\} | 1519 | \\} |
| 1518 | , &[_][]const u8{ | 1520 | , &[_][]const u8{ |
| 1519 | \\pub export fn foo(u32_0: c_int) c_int { | 1521 | \\pub fn foo(u32_0: c_int) c_int { |
| 1520 | \\ return u32_0; | 1522 | \\ return u32_0; |
| 1521 | \\} | 1523 | \\} |
| 1522 | }); | 1524 | }); |
| ... | @@ -1545,7 +1547,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1545,7 +1547,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1545 | \\ B, | 1547 | \\ B, |
| 1546 | \\ C, | 1548 | \\ C, |
| 1547 | \\}; | 1549 | \\}; |
| 1548 | \\pub export fn if_none_bool(a: c_int, b: f32, c: ?*c_void, d: enum_SomeEnum) c_int { | 1550 | \\pub fn if_none_bool(a: c_int, b: f32, c: ?*c_void, d: enum_SomeEnum) c_int { |
| 1549 | \\ if (a != 0) return 0; | 1551 | \\ if (a != 0) return 0; |
| 1550 | \\ if (b != 0) return 1; | 1552 | \\ if (b != 0) return 1; |
| 1551 | \\ if (c != null) return 2; | 1553 | \\ if (c != null) return 2; |
| ... | @@ -1562,7 +1564,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1562,7 +1564,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1562 | \\ return 3; | 1564 | \\ return 3; |
| 1563 | \\} | 1565 | \\} |
| 1564 | , &[_][]const u8{ | 1566 | , &[_][]const u8{ |
| 1565 | \\pub export fn while_none_bool(a: c_int, b: f32, c: ?*c_void) c_int { | 1567 | \\pub fn while_none_bool(a: c_int, b: f32, c: ?*c_void) c_int { |
| 1566 | \\ while (a != 0) return 0; | 1568 | \\ while (a != 0) return 0; |
| 1567 | \\ while (b != 0) return 1; | 1569 | \\ while (b != 0) return 1; |
| 1568 | \\ while (c != null) return 2; | 1570 | \\ while (c != null) return 2; |
| ... | @@ -1578,7 +1580,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1578,7 +1580,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1578 | \\ return 3; | 1580 | \\ return 3; |
| 1579 | \\} | 1581 | \\} |
| 1580 | , &[_][]const u8{ | 1582 | , &[_][]const u8{ |
| 1581 | \\pub export fn for_none_bool(a: c_int, b: f32, c: ?*c_void) c_int { | 1583 | \\pub fn for_none_bool(a: c_int, b: f32, c: ?*c_void) c_int { |
| 1582 | \\ while (a != 0) return 0; | 1584 | \\ while (a != 0) return 0; |
| 1583 | \\ while (b != 0) return 1; | 1585 | \\ while (b != 0) return 1; |
| 1584 | \\ while (c != null) return 2; | 1586 | \\ while (c != null) return 2; |
| ... | @@ -1602,7 +1604,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1602,7 +1604,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1602 | \\ } | 1604 | \\ } |
| 1603 | \\} | 1605 | \\} |
| 1604 | , &[_][]const u8{ | 1606 | , &[_][]const u8{ |
| 1605 | \\pub export fn switch_fn(i: c_int) c_int { | 1607 | \\pub fn switch_fn(i: c_int) c_int { |
| 1606 | \\ var res: c_int = 0; | 1608 | \\ var res: c_int = 0; |
| 1607 | \\ __switch: { | 1609 | \\ __switch: { |
| 1608 | \\ __case_2: { | 1610 | \\ __case_2: { |
| ... | @@ -1628,7 +1630,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1628,7 +1630,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1628 | \\} | 1630 | \\} |
| 1629 | }); | 1631 | }); |
| 1630 | | 1632 | |
| 1631 | cases.add( | 1633 | cases.addC( |
| 1632 | "u integer suffix after 0 (zero) in macro definition", | 1634 | "u integer suffix after 0 (zero) in macro definition", |
| 1633 | "#define ZERO 0U", | 1635 | "#define ZERO 0U", |
| 1634 | &[_][]const u8{ | 1636 | &[_][]const u8{ |
| ... | @@ -1636,7 +1638,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1636,7 +1638,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1636 | }, | 1638 | }, |
| 1637 | ); | 1639 | ); |
| 1638 | | 1640 | |
| 1639 | cases.add( | 1641 | cases.addC( |
| 1640 | "l integer suffix after 0 (zero) in macro definition", | 1642 | "l integer suffix after 0 (zero) in macro definition", |
| 1641 | "#define ZERO 0L", | 1643 | "#define ZERO 0L", |
| 1642 | &[_][]const u8{ | 1644 | &[_][]const u8{ |
| ... | @@ -1644,7 +1646,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1644,7 +1646,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1644 | }, | 1646 | }, |
| 1645 | ); | 1647 | ); |
| 1646 | | 1648 | |
| 1647 | cases.add( | 1649 | cases.addC( |
| 1648 | "ul integer suffix after 0 (zero) in macro definition", | 1650 | "ul integer suffix after 0 (zero) in macro definition", |
| 1649 | "#define ZERO 0UL", | 1651 | "#define ZERO 0UL", |
| 1650 | &[_][]const u8{ | 1652 | &[_][]const u8{ |
| ... | @@ -1652,7 +1654,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1652,7 +1654,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1652 | }, | 1654 | }, |
| 1653 | ); | 1655 | ); |
| 1654 | | 1656 | |
| 1655 | cases.add( | 1657 | cases.addC( |
| 1656 | "lu integer suffix after 0 (zero) in macro definition", | 1658 | "lu integer suffix after 0 (zero) in macro definition", |
| 1657 | "#define ZERO 0LU", | 1659 | "#define ZERO 0LU", |
| 1658 | &[_][]const u8{ | 1660 | &[_][]const u8{ |
| ... | @@ -1660,7 +1662,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1660,7 +1662,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1660 | }, | 1662 | }, |
| 1661 | ); | 1663 | ); |
| 1662 | | 1664 | |
| 1663 | cases.add( | 1665 | cases.addC( |
| 1664 | "ll integer suffix after 0 (zero) in macro definition", | 1666 | "ll integer suffix after 0 (zero) in macro definition", |
| 1665 | "#define ZERO 0LL", | 1667 | "#define ZERO 0LL", |
| 1666 | &[_][]const u8{ | 1668 | &[_][]const u8{ |
| ... | @@ -1668,7 +1670,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1668,7 +1670,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1668 | }, | 1670 | }, |
| 1669 | ); | 1671 | ); |
| 1670 | | 1672 | |
| 1671 | cases.add( | 1673 | cases.addC( |
| 1672 | "ull integer suffix after 0 (zero) in macro definition", | 1674 | "ull integer suffix after 0 (zero) in macro definition", |
| 1673 | "#define ZERO 0ULL", | 1675 | "#define ZERO 0ULL", |
| 1674 | &[_][]const u8{ | 1676 | &[_][]const u8{ |
| ... | @@ -1676,7 +1678,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1676,7 +1678,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1676 | }, | 1678 | }, |
| 1677 | ); | 1679 | ); |
| 1678 | | 1680 | |
| 1679 | cases.add( | 1681 | cases.addC( |
| 1680 | "llu integer suffix after 0 (zero) in macro definition", | 1682 | "llu integer suffix after 0 (zero) in macro definition", |
| 1681 | "#define ZERO 0LLU", | 1683 | "#define ZERO 0LLU", |
| 1682 | &[_][]const u8{ | 1684 | &[_][]const u8{ |
| ... | @@ -1684,7 +1686,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1684,7 +1686,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1684 | }, | 1686 | }, |
| 1685 | ); | 1687 | ); |
| 1686 | | 1688 | |
| 1687 | cases.add( | 1689 | cases.addC( |
| 1688 | "bitwise not on u-suffixed 0 (zero) in macro definition", | 1690 | "bitwise not on u-suffixed 0 (zero) in macro definition", |
| 1689 | "#define NOT_ZERO (~0U)", | 1691 | "#define NOT_ZERO (~0U)", |
| 1690 | &[_][]const u8{ | 1692 | &[_][]const u8{ |
| ... | @@ -1692,7 +1694,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1692,7 +1694,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1692 | }, | 1694 | }, |
| 1693 | ); | 1695 | ); |
| 1694 | | 1696 | |
| 1695 | cases.add("implicit casts", | 1697 | cases.addC("implicit casts", |
| 1696 | \\#include <stdbool.h> | 1698 | \\#include <stdbool.h> |
| 1697 | \\ | 1699 | \\ |
| 1698 | \\void fn_int(int x); | 1700 | \\void fn_int(int x); |
| ... | @@ -1747,7 +1749,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1747,7 +1749,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1747 | \\} | 1749 | \\} |
| 1748 | }); | 1750 | }); |
| 1749 | | 1751 | |
| 1750 | cases.add("pointer conversion with different alignment", | 1752 | cases.addC("pointer conversion with different alignment", |
| 1751 | \\void test_ptr_cast() { | 1753 | \\void test_ptr_cast() { |
| 1752 | \\ void *p; | 1754 | \\ void *p; |
| 1753 | \\ { | 1755 | \\ { |
| ... | @@ -1781,7 +1783,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1781,7 +1783,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1781 | \\} | 1783 | \\} |
| 1782 | }); | 1784 | }); |
| 1783 | | 1785 | |
| 1784 | cases.add("escape sequences", | 1786 | cases.addC("escape sequences", |
| 1785 | \\const char *escapes() { | 1787 | \\const char *escapes() { |
| 1786 | \\char a = '\'', | 1788 | \\char a = '\'', |
| 1787 | \\ b = '\\', | 1789 | \\ b = '\\', |
| ... | @@ -1825,7 +1827,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { | ... | @@ -1825,7 +1827,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1825 | } | 1827 | } |
| 1826 | | 1828 | |
| 1827 | /////////////// Cases for only stage1 because stage2 behavior is better //////////////// | 1829 | /////////////// Cases for only stage1 because stage2 behavior is better //////////////// |
| 1828 | cases.add("Parameterless function prototypes", | 1830 | cases.addC("Parameterless function prototypes", |
| 1829 | \\void foo() {} | 1831 | \\void foo() {} |
| 1830 | \\void bar(void) {} | 1832 | \\void bar(void) {} |
| 1831 | , &[_][]const u8{ | 1833 | , &[_][]const u8{ |