diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/ASTMerge/Inputs/struct1.c | 10 | ||||
-rw-r--r-- | test/ASTMerge/Inputs/struct2.c | 6 | ||||
-rw-r--r-- | test/ASTMerge/struct.c | 7 |
3 files changed, 19 insertions, 4 deletions
diff --git a/test/ASTMerge/Inputs/struct1.c b/test/ASTMerge/Inputs/struct1.c index 10c8fce42a..e6d71ac1b4 100644 --- a/test/ASTMerge/Inputs/struct1.c +++ b/test/ASTMerge/Inputs/struct1.c @@ -44,10 +44,14 @@ struct S9 { int i; float f; } *x9; // Incomplete type struct S10 *x10; -// FIXME: Matches, but crashes the importer -#if 0 +// Matches struct ListNode { int value; struct ListNode *Next; } xList; -#endif + +// Mismatch due to struct used internally +struct DeepError { + int value; + struct DeeperError { int i; int f; } *Deeper; +} xDeep; diff --git a/test/ASTMerge/Inputs/struct2.c b/test/ASTMerge/Inputs/struct2.c index 655efd43db..402283137a 100644 --- a/test/ASTMerge/Inputs/struct2.c +++ b/test/ASTMerge/Inputs/struct2.c @@ -46,3 +46,9 @@ 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; diff --git a/test/ASTMerge/struct.c b/test/ASTMerge/struct.c index c6e57185ab..d71436f2fc 100644 --- a/test/ASTMerge/struct.c +++ b/test/ASTMerge/struct.c @@ -31,4 +31,9 @@ // CHECK: struct2.c:33:33: note: bit-field 'j' with type 'unsigned int' and length 16 here // CHECK: struct2.c:33:43: error: external variable 'x7' declared with incompatible types in different translation units ('struct S7' vs. 'struct S7') // CHECK: struct1.c:36:42: note: declared here with type 'struct S7' -// CHECK: 29 diagnostics +// CHECK: struct1.c:56:10: warning: type 'struct DeeperError' has incompatible definitions in different translation units +// CHECK: struct1.c:56:35: note: field 'f' has type 'int' here +// CHECK: struct2.c:53:37: note: field 'f' has type 'float' here +// CHECK: struct2.c:54:3: error: external variable 'xDeep' declared with incompatible types in different translation units ('struct DeepError' vs. 'struct DeepError') +// CHECK: struct1.c:57:3: note: declared here with type 'struct DeepError' +// CHECK: 37 diagnostics |