Commit 2da9e0060b

LemonBoy <thatlemon@gmail.com>
2020-01-05 20:29:14
Add explanation about weird clang behavior on windows
1 parent 1dc25d7
Changed files (1)
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 <arch>-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] = {};