diff options
author | Reid Kleckner <rnk@google.com> | 2019-05-14 18:51:07 +0000 |
---|---|---|
committer | Reid Kleckner <rnk@google.com> | 2019-05-14 18:51:07 +0000 |
commit | 0333dd95636da52229ca14b4e5525c1cd8ba62d2 (patch) | |
tree | 87ae14b4d0660169ac71541697a9b7338e105185 /clang/test/ASTMerge/struct/Inputs/struct2.c | |
parent | 094584cd522b119444a05019189f2065ad1d215c (diff) | |
download | bcm5719-llvm-0333dd95636da52229ca14b4e5525c1cd8ba62d2.tar.gz bcm5719-llvm-0333dd95636da52229ca14b4e5525c1cd8ba62d2.zip |
Restore test files accidentally deleted in r354839
I think there must be a bug in git-llvm causing parent directories to be
deleted when the diff deletes files in a subdirectory. Perhaps it is
Windows-only.
There has been a behavior change, so some of these tests now fail. I
have marked them XFAIL and will fix them in a follow-up to separate the
changes.
llvm-svn: 360699
Diffstat (limited to 'clang/test/ASTMerge/struct/Inputs/struct2.c')
-rw-r--r-- | clang/test/ASTMerge/struct/Inputs/struct2.c | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/clang/test/ASTMerge/struct/Inputs/struct2.c b/clang/test/ASTMerge/struct/Inputs/struct2.c new file mode 100644 index 00000000000..49fe36d823d --- /dev/null +++ b/clang/test/ASTMerge/struct/Inputs/struct2.c @@ -0,0 +1,138 @@ +// Matches +struct S0 { + int field1; + float field2; +}; + +struct S0 x0; + +// Mismatch in field type +struct S1 { + int field1; + float field2; +}; + +struct S1 x1; + +// Mismatch in tag kind. +union S2 { int i; float f; } x2; + +// Missing fields +struct S3 { int i; float f; } x3; + +// Extra fields +struct S4 { int i; float f; } x4; + +// Bit-field matches +struct S5 { int i : 8; unsigned j : 8; } x5; + +// Bit-field mismatch +struct S6 { int i : 8; unsigned j; } x6; + +// Bit-field mismatch +struct S7 { int i : 8; unsigned j : 16; } x7; + +// Incomplete type +struct S8 { int i; float f; } *x8; + +// Incomplete type +struct S9 *x9; + +// Incomplete type +struct S10 *x10; + +// Matches +struct ListNode { + int value; + struct ListNode *Next; +} xList; + +// Mismatch due to struct used internally +struct DeepError { + int value; + struct DeeperError { int i; float f; } *Deeper; +} xDeep; + +// Matches +struct { + int i; + float f; +} x11; + +// Matches +typedef struct { + int i; + float f; +} S12; + +S12 x12; + +// Mismatch +typedef struct { + int i; // Mismatch here. + float f; +} S13; + +S13 x13; + +// Matches +struct Unnamed { + union { + struct { + int i; + } S; + struct { + float i; + } R; + } U; +} x14; + +// Matches +struct DeepUnnamed { + union { + union { + struct { + long i; + } S; + struct { + int i; + } R; + } U1; + union { + struct { + long i; + } S; + struct { + float i; + } T; + } U2; + } U; + struct { + long i; + } V; +} x15; + +// Mismatch due to unnamed struct used internally +struct DeepUnnamedError { + union { + union { + struct { + long i; + } S; + struct { + int i; + } R; + } U1; + union { + struct { + float i; // Mismatch here. + } S; + struct { + float i; + } T; + } U2; + } U; + struct { + long i; + } V; +} x16; |