From 2da9e0060b0ab4cbb404f55e279606766439e0cd Mon Sep 17 00:00:00 2001 From: LemonBoy Date: Sun, 5 Jan 2020 20:29:14 +0100 Subject: [PATCH] Add explanation about weird clang behavior on windows --- test/translate_c.zig | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/test/translate_c.zig b/test/translate_c.zig index a36d9e0f6f..caa66a1fd9 100644 --- a/test/translate_c.zig +++ b/test/translate_c.zig @@ -1471,21 +1471,25 @@ pub fn addCases(cases: *tests.TranslateCContext) void { \\} }); - cases.add("type referenced struct", - \\struct Foo { - \\ struct Bar{ - \\ int b; - \\ }; - \\ struct Bar c; - \\}; - , &[_][]const u8{ - \\pub const struct_Bar = extern struct { - \\ b: c_int, - \\}; - \\pub const struct_Foo = extern struct { - \\ c: struct_Bar, - \\}; - }); + if (builtin.os != .windows) { + // When clang uses the -windows-none triple it behaves as MSVC and + // interprets the inner `struct Bar` as an anonymous structure + cases.add("type referenced struct", + \\struct Foo { + \\ struct Bar{ + \\ int b; + \\ }; + \\ struct Bar c; + \\}; + , &[_][]const u8{ + \\pub const struct_Bar = extern struct { + \\ b: c_int, + \\}; + \\pub const struct_Foo = extern struct { + \\ c: struct_Bar, + \\}; + }); + } cases.add("undefined array global", \\int array[100] = {};