commit 2da9e0060b0ab4cbb404f55e279606766439e0cd (tree)
parent 1dc25d75506adbd7f011c362fbcac01c27e940f4
Author: LemonBoy <thatlemon@gmail.com>
Date: Sun, 5 Jan 2020 20:29:14 +0100
Add explanation about weird clang behavior on windows
Diffstat:
1 file changed, 19 insertions(+), 15 deletions(-)
diff --git 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 <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] = {};