| ... | ... | @@ -313,22 +313,22 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 313 | 313 | , &[_][]const u8{ |
| 314 | 314 | \\pub const uuid_t = [16]u8; |
| 315 | 315 | \\pub const UUID_NULL: uuid_t = [16]u8{ |
| 316 | | \\ @bitCast(u8, @truncate(i8, @as(c_int, 0))), |
| 317 | | \\ @bitCast(u8, @truncate(i8, @as(c_int, 0))), |
| 318 | | \\ @bitCast(u8, @truncate(i8, @as(c_int, 0))), |
| 319 | | \\ @bitCast(u8, @truncate(i8, @as(c_int, 0))), |
| 320 | | \\ @bitCast(u8, @truncate(i8, @as(c_int, 0))), |
| 321 | | \\ @bitCast(u8, @truncate(i8, @as(c_int, 0))), |
| 322 | | \\ @bitCast(u8, @truncate(i8, @as(c_int, 0))), |
| 323 | | \\ @bitCast(u8, @truncate(i8, @as(c_int, 0))), |
| 324 | | \\ @bitCast(u8, @truncate(i8, @as(c_int, 0))), |
| 325 | | \\ @bitCast(u8, @truncate(i8, @as(c_int, 0))), |
| 326 | | \\ @bitCast(u8, @truncate(i8, @as(c_int, 0))), |
| 327 | | \\ @bitCast(u8, @truncate(i8, @as(c_int, 0))), |
| 328 | | \\ @bitCast(u8, @truncate(i8, @as(c_int, 0))), |
| 329 | | \\ @bitCast(u8, @truncate(i8, @as(c_int, 0))), |
| 330 | | \\ @bitCast(u8, @truncate(i8, @as(c_int, 0))), |
| 331 | | \\ @bitCast(u8, @truncate(i8, @as(c_int, 0))), |
| 316 | \\ 0, |
| 317 | \\ 0, |
| 318 | \\ 0, |
| 319 | \\ 0, |
| 320 | \\ 0, |
| 321 | \\ 0, |
| 322 | \\ 0, |
| 323 | \\ 0, |
| 324 | \\ 0, |
| 325 | \\ 0, |
| 326 | \\ 0, |
| 327 | \\ 0, |
| 328 | \\ 0, |
| 329 | \\ 0, |
| 330 | \\ 0, |
| 331 | \\ 0, |
| 332 | 332 | \\}; |
| 333 | 333 | }); |
| 334 | 334 | |
| ... | ... | @@ -382,10 +382,10 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 382 | 382 | \\}; |
| 383 | 383 | \\pub export var ub: union_unnamed_1 = union_unnamed_1{ |
| 384 | 384 | \\ .c = [4]u8{ |
| 385 | | \\ @bitCast(u8, @truncate(i8, @as(c_int, 'a'))), |
| 386 | | \\ @bitCast(u8, @truncate(i8, @as(c_int, 'b'))), |
| 387 | | \\ @bitCast(u8, @truncate(i8, @as(c_int, 'b'))), |
| 388 | | \\ @bitCast(u8, @truncate(i8, @as(c_int, 'a'))), |
| 385 | \\ 'a', |
| 386 | \\ 'b', |
| 387 | \\ 'b', |
| 388 | \\ 'a', |
| 389 | 389 | \\ }, |
| 390 | 390 | \\}; |
| 391 | 391 | }); |
| ... | ... | @@ -512,7 +512,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 512 | 512 | , &[_][]const u8{ |
| 513 | 513 | \\pub export fn foo() void { |
| 514 | 514 | \\ var a: c_int = undefined; |
| 515 | | \\ var b: u8 = @bitCast(u8, @truncate(i8, @as(c_int, 123))); |
| 515 | \\ var b: u8 = 123; |
| 516 | 516 | \\ const c: c_int = undefined; |
| 517 | 517 | \\ const d: c_uint = @bitCast(c_uint, @as(c_int, 440)); |
| 518 | 518 | \\ var e: c_int = 10; |
| ... | ... | @@ -1468,7 +1468,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1468 | 1468 | , &[_][]const u8{ |
| 1469 | 1469 | \\pub fn foo() callconv(.C) void { |
| 1470 | 1470 | \\ var arr: [10]u8 = [1]u8{ |
| 1471 | | \\ @bitCast(u8, @truncate(i8, @as(c_int, 1))), |
| 1471 | \\ 1, |
| 1472 | 1472 | \\ } ++ [1]u8{0} ** 9; |
| 1473 | 1473 | \\ var arr1: [10][*c]u8 = [1][*c]u8{ |
| 1474 | 1474 | \\ null, |
| ... | ... | @@ -1721,13 +1721,13 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1721 | 1721 | \\ unsigned d = 440; |
| 1722 | 1722 | \\} |
| 1723 | 1723 | , &[_][]const u8{ |
| 1724 | | \\pub var a: c_long = @bitCast(c_long, @as(c_long, @as(c_int, 2))); |
| 1725 | | \\pub var b: c_long = @bitCast(c_long, @as(c_long, @as(c_int, 2))); |
| 1724 | \\pub var a: c_long = 2; |
| 1725 | \\pub var b: c_long = 2; |
| 1726 | 1726 | \\pub var c: c_int = 4; |
| 1727 | 1727 | \\pub export fn foo(arg_c_1: u8) void { |
| 1728 | 1728 | \\ var c_1 = arg_c_1; |
| 1729 | 1729 | \\ var a_2: c_int = undefined; |
| 1730 | | \\ var b_3: u8 = @bitCast(u8, @truncate(i8, @as(c_int, 123))); |
| 1730 | \\ var b_3: u8 = 123; |
| 1731 | 1731 | \\ b_3 = @bitCast(u8, @truncate(i8, a_2)); |
| 1732 | 1732 | \\ { |
| 1733 | 1733 | \\ var d: c_int = 5; |
| ... | ... | @@ -1838,7 +1838,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1838 | 1838 | \\ }; |
| 1839 | 1839 | \\ } |
| 1840 | 1840 | \\ } |
| 1841 | | \\ var i: u8 = @bitCast(u8, @truncate(i8, @as(c_int, 2))); |
| 1841 | \\ var i: u8 = 2; |
| 1842 | 1842 | \\} |
| 1843 | 1843 | }); |
| 1844 | 1844 | |
| ... | ... | @@ -1846,7 +1846,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1846 | 1846 | \\unsigned anyerror = 2; |
| 1847 | 1847 | \\#define noreturn _Noreturn |
| 1848 | 1848 | , &[_][]const u8{ |
| 1849 | | \\pub export var anyerror_1: c_uint = @bitCast(c_uint, @as(c_int, 2)); |
| 1849 | \\pub export var anyerror_1: c_uint = 2; |
| 1850 | 1850 | , |
| 1851 | 1851 | \\pub const noreturn_2 = @compileError("unable to translate C expr: unexpected token .Keyword_noreturn"); |
| 1852 | 1852 | }); |
| ... | ... | @@ -1860,7 +1860,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 1860 | 1860 | \\pub export var a: f32 = @floatCast(f32, 3.1415); |
| 1861 | 1861 | \\pub export var b: f64 = 3.1415; |
| 1862 | 1862 | \\pub export var c: c_int = @floatToInt(c_int, 3.1415); |
| 1863 | | \\pub export var d: f64 = @intToFloat(f64, @as(c_int, 3)); |
| 1863 | \\pub export var d: f64 = 3; |
| 1864 | 1864 | }); |
| 1865 | 1865 | |
| 1866 | 1866 | cases.add("conditional operator", |
| ... | ... | @@ -2009,7 +2009,6 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 2009 | 2009 | \\} |
| 2010 | 2010 | }); |
| 2011 | 2011 | |
| 2012 | | // TODO translate-c should in theory be able to figure out to drop all these casts |
| 2013 | 2012 | cases.add("escape sequences", |
| 2014 | 2013 | \\const char *escapes() { |
| 2015 | 2014 | \\char a = '\'', |
| ... | ... | @@ -2028,17 +2027,17 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 2028 | 2027 | \\ |
| 2029 | 2028 | , &[_][]const u8{ |
| 2030 | 2029 | \\pub export fn escapes() [*c]const u8 { |
| 2031 | | \\ var a: u8 = @bitCast(u8, @truncate(i8, @as(c_int, '\''))); |
| 2032 | | \\ var b: u8 = @bitCast(u8, @truncate(i8, @as(c_int, '\\'))); |
| 2033 | | \\ var c: u8 = @bitCast(u8, @truncate(i8, @as(c_int, '\x07'))); |
| 2034 | | \\ var d: u8 = @bitCast(u8, @truncate(i8, @as(c_int, '\x08'))); |
| 2035 | | \\ var e: u8 = @bitCast(u8, @truncate(i8, @as(c_int, '\x0c'))); |
| 2036 | | \\ var f: u8 = @bitCast(u8, @truncate(i8, @as(c_int, '\n'))); |
| 2037 | | \\ var g: u8 = @bitCast(u8, @truncate(i8, @as(c_int, '\r'))); |
| 2038 | | \\ var h: u8 = @bitCast(u8, @truncate(i8, @as(c_int, '\t'))); |
| 2039 | | \\ var i: u8 = @bitCast(u8, @truncate(i8, @as(c_int, '\x0b'))); |
| 2040 | | \\ var j: u8 = @bitCast(u8, @truncate(i8, @as(c_int, '\x00'))); |
| 2041 | | \\ var k: u8 = @bitCast(u8, @truncate(i8, @as(c_int, '\"'))); |
| 2030 | \\ var a: u8 = '\''; |
| 2031 | \\ var b: u8 = '\\'; |
| 2032 | \\ var c: u8 = '\x07'; |
| 2033 | \\ var d: u8 = '\x08'; |
| 2034 | \\ var e: u8 = '\x0c'; |
| 2035 | \\ var f: u8 = '\n'; |
| 2036 | \\ var g: u8 = '\r'; |
| 2037 | \\ var h: u8 = '\t'; |
| 2038 | \\ var i: u8 = '\x0b'; |
| 2039 | \\ var j: u8 = '\x00'; |
| 2040 | \\ var k: u8 = '\"'; |
| 2042 | 2041 | \\ return "\'\\\x07\x08\x0c\n\r\t\x0b\x00\""; |
| 2043 | 2042 | \\} |
| 2044 | 2043 | }); |
| ... | ... | @@ -2308,8 +2307,8 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 2308 | 2307 | , &[_][]const u8{ |
| 2309 | 2308 | \\pub export fn foo() void { |
| 2310 | 2309 | \\ var a: [10]c_longlong = undefined; |
| 2311 | | \\ var i: c_longlong = @bitCast(c_longlong, @as(c_longlong, @as(c_int, 0))); |
| 2312 | | \\ a[@intCast(usize, i)] = @bitCast(c_longlong, @as(c_longlong, @as(c_int, 0))); |
| 2310 | \\ var i: c_longlong = 0; |
| 2311 | \\ a[@intCast(usize, i)] = 0; |
| 2313 | 2312 | \\} |
| 2314 | 2313 | }); |
| 2315 | 2314 | |
| ... | ... | @@ -2321,8 +2320,8 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 2321 | 2320 | , &[_][]const u8{ |
| 2322 | 2321 | \\pub export fn foo() void { |
| 2323 | 2322 | \\ var a: [10]c_uint = undefined; |
| 2324 | | \\ var i: c_uint = @bitCast(c_uint, @as(c_int, 0)); |
| 2325 | | \\ a[i] = @bitCast(c_uint, @as(c_int, 0)); |
| 2323 | \\ var i: c_uint = 0; |
| 2324 | \\ a[i] = 0; |
| 2326 | 2325 | \\} |
| 2327 | 2326 | }); |
| 2328 | 2327 | |
| ... | ... | @@ -2527,7 +2526,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 2527 | 2526 | , &[_][]const u8{ |
| 2528 | 2527 | \\pub export fn foo() void { |
| 2529 | 2528 | \\ var i: c_int = 0; |
| 2530 | | \\ var u: c_uint = @bitCast(c_uint, @as(c_int, 0)); |
| 2529 | \\ var u: c_uint = 0; |
| 2531 | 2530 | \\ i += 1; |
| 2532 | 2531 | \\ i -= 1; |
| 2533 | 2532 | \\ u +%= 1; |
| ... | ... | @@ -2614,7 +2613,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 2614 | 2613 | , &[_][]const u8{ |
| 2615 | 2614 | \\pub export fn foo() void { |
| 2616 | 2615 | \\ var a: c_int = 0; |
| 2617 | | \\ var b: c_uint = @bitCast(c_uint, @as(c_int, 0)); |
| 2616 | \\ var b: c_uint = 0; |
| 2618 | 2617 | \\ a += blk: { |
| 2619 | 2618 | \\ const ref = &a; |
| 2620 | 2619 | \\ ref.* += @as(c_int, 1); |
| ... | ... | @@ -2692,7 +2691,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 2692 | 2691 | \\} |
| 2693 | 2692 | , &[_][]const u8{ |
| 2694 | 2693 | \\pub export fn foo() void { |
| 2695 | | \\ var a: c_uint = @bitCast(c_uint, @as(c_int, 0)); |
| 2694 | \\ var a: c_uint = 0; |
| 2696 | 2695 | \\ a +%= blk: { |
| 2697 | 2696 | \\ const ref = &a; |
| 2698 | 2697 | \\ ref.* +%= @bitCast(c_uint, @as(c_int, 1)); |
| ... | ... | @@ -2752,7 +2751,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { |
| 2752 | 2751 | , &[_][]const u8{ |
| 2753 | 2752 | \\pub export fn foo() void { |
| 2754 | 2753 | \\ var i: c_int = 0; |
| 2755 | | \\ var u: c_uint = @bitCast(c_uint, @as(c_int, 0)); |
| 2754 | \\ var u: c_uint = 0; |
| 2756 | 2755 | \\ i += 1; |
| 2757 | 2756 | \\ i -= 1; |
| 2758 | 2757 | \\ u +%= 1; |