Add explanation about weird clang behavior on windows

This commit is contained in:
LemonBoy 2020-01-05 20:29:14 +01:00 committed by Andrew Kelley
parent 1dc25d7550
commit 2da9e0060b
No known key found for this signature in database
GPG Key ID: 7C5F548F728501A9

View File

@ -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] = {};