diff options
Diffstat (limited to 'test/ASTMerge/Inputs')
-rw-r--r-- | test/ASTMerge/Inputs/enum1.c | 42 | ||||
-rw-r--r-- | test/ASTMerge/Inputs/enum2.c | 42 | ||||
-rw-r--r-- | test/ASTMerge/Inputs/function1.c | 6 | ||||
-rw-r--r-- | test/ASTMerge/Inputs/function2.c | 7 | ||||
-rw-r--r-- | test/ASTMerge/Inputs/interface1.m | 7 | ||||
-rw-r--r-- | test/ASTMerge/Inputs/interface2.m | 7 | ||||
-rw-r--r-- | test/ASTMerge/Inputs/lit.local.cfg | 1 | ||||
-rw-r--r-- | test/ASTMerge/Inputs/struct1.c | 63 | ||||
-rw-r--r-- | test/ASTMerge/Inputs/struct2.c | 60 | ||||
-rw-r--r-- | test/ASTMerge/Inputs/typedef1.c | 4 | ||||
-rw-r--r-- | test/ASTMerge/Inputs/typedef2.c | 4 | ||||
-rw-r--r-- | test/ASTMerge/Inputs/var1.c | 7 | ||||
-rw-r--r-- | test/ASTMerge/Inputs/var1.h | 1 | ||||
-rw-r--r-- | test/ASTMerge/Inputs/var2.c | 7 |
14 files changed, 258 insertions, 0 deletions
diff --git a/test/ASTMerge/Inputs/enum1.c b/test/ASTMerge/Inputs/enum1.c new file mode 100644 index 0000000..f2b9c5c --- /dev/null +++ b/test/ASTMerge/Inputs/enum1.c @@ -0,0 +1,42 @@ +// Matching +enum E1 { + E1Enumerator1, + E1Enumerator2 = 3, + E1Enumerator3 +} x1; + +// Value mismatch +enum E2 { + E2Enumerator1, + E2Enumerator2 = 3, + E2Enumerator3 +} x2; + +// Name mismatch +enum E3 { + E3Enumerator1, + E3Enumerator2 = 3, + E3Enumerator3 +} x3; + +// Missing enumerator +enum E4 { + E4Enumerator1, + E4Enumerator2, + E4Enumerator3 +} x4; + +// Extra enumerator +enum E5 { + E5Enumerator1, + E5Enumerator2, + E5Enumerator3 +} x5; + +// Matching, with typedef +typedef enum { + E6Enumerator1, + E6Enumerator2 +} E6; + +E6 x6; diff --git a/test/ASTMerge/Inputs/enum2.c b/test/ASTMerge/Inputs/enum2.c new file mode 100644 index 0000000..315b4dc --- /dev/null +++ b/test/ASTMerge/Inputs/enum2.c @@ -0,0 +1,42 @@ +// Matching +enum E1 { + E1Enumerator1, + E1Enumerator2 = 3, + E1Enumerator3 +} x1; + +// Value mismatch +enum E2 { + E2Enumerator1, + E2Enumerator2 = 4, + E2Enumerator3 +} x2; + +// Name mismatch +enum E3 { + E3Enumerator1, + E3Enumerator = 3, + E3Enumerator3 +} x3; + +// Missing enumerator +enum E4 { + E4Enumerator1, + E4Enumerator2 +} x4; + +// Extra enumerator +enum E5 { + E5Enumerator1, + E5Enumerator2, + E5Enumerator3, + E5Enumerator4 +} x5; + +// Matching, with typedef +typedef enum { + E6Enumerator1, + E6Enumerator2 +} E6; + +E6 x6; diff --git a/test/ASTMerge/Inputs/function1.c b/test/ASTMerge/Inputs/function1.c new file mode 100644 index 0000000..4523bd3 --- /dev/null +++ b/test/ASTMerge/Inputs/function1.c @@ -0,0 +1,6 @@ +void f0(int); +void f1(int, float); +void f2(); +void f3(void); +void f4(int, int); +int f5(int) __attribute__((const)); diff --git a/test/ASTMerge/Inputs/function2.c b/test/ASTMerge/Inputs/function2.c new file mode 100644 index 0000000..6ca810a --- /dev/null +++ b/test/ASTMerge/Inputs/function2.c @@ -0,0 +1,7 @@ +typedef int Int; +void f0(Int); +void f1(Int, double); +void f2(int, int); +void f3(int); +static void f4(float, float); +int f5(int) __attribute__((const)); diff --git a/test/ASTMerge/Inputs/interface1.m b/test/ASTMerge/Inputs/interface1.m new file mode 100644 index 0000000..1aa1c3b --- /dev/null +++ b/test/ASTMerge/Inputs/interface1.m @@ -0,0 +1,7 @@ +// Matches +@interface I1 +@end + +// Matches +@interface I2 : I1 +@end diff --git a/test/ASTMerge/Inputs/interface2.m b/test/ASTMerge/Inputs/interface2.m new file mode 100644 index 0000000..1aa1c3b --- /dev/null +++ b/test/ASTMerge/Inputs/interface2.m @@ -0,0 +1,7 @@ +// Matches +@interface I1 +@end + +// Matches +@interface I2 : I1 +@end diff --git a/test/ASTMerge/Inputs/lit.local.cfg b/test/ASTMerge/Inputs/lit.local.cfg new file mode 100644 index 0000000..e6f55ee --- /dev/null +++ b/test/ASTMerge/Inputs/lit.local.cfg @@ -0,0 +1 @@ +config.suffixes = [] diff --git a/test/ASTMerge/Inputs/struct1.c b/test/ASTMerge/Inputs/struct1.c new file mode 100644 index 0000000..af2af8a --- /dev/null +++ b/test/ASTMerge/Inputs/struct1.c @@ -0,0 +1,63 @@ +typedef int Int; +typedef float Float; + +// Matches +struct S0 { + Int field1; + Float field2; +}; + +struct S0 x0; + +// Mismatch in field type +struct S1 { + Int field1; + int field2; +}; + +struct S1 x1; + +// Mismatch in tag kind. +struct S2 { int i; float f; } x2; + +// Missing fields +struct S3 { int i; float f; double d; } x3; + +// Extra fields +struct S4 { int i; } x4; + +// Bit-field matches +struct S5 { int i : 8; unsigned j : 8; } x5; + +// Bit-field mismatch +struct S6 { int i : 8; unsigned j : 8; } x6; + +// Bit-field mismatch +struct S7 { int i : 8; unsigned j : 8; } x7; + +// Incomplete type +struct S8 *x8; + +// Incomplete type +struct S9 { int i; float f; } *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; int f; } *Deeper; +} xDeep; + +// Matches +struct { + Int i; + float f; +} x11; diff --git a/test/ASTMerge/Inputs/struct2.c b/test/ASTMerge/Inputs/struct2.c new file mode 100644 index 0000000..4b43df7 --- /dev/null +++ b/test/ASTMerge/Inputs/struct2.c @@ -0,0 +1,60 @@ +// 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; diff --git a/test/ASTMerge/Inputs/typedef1.c b/test/ASTMerge/Inputs/typedef1.c new file mode 100644 index 0000000..5657675 --- /dev/null +++ b/test/ASTMerge/Inputs/typedef1.c @@ -0,0 +1,4 @@ +typedef int Typedef1; +typedef int Typedef2; +Typedef1 x1; +Typedef2 x2; diff --git a/test/ASTMerge/Inputs/typedef2.c b/test/ASTMerge/Inputs/typedef2.c new file mode 100644 index 0000000..129d710 --- /dev/null +++ b/test/ASTMerge/Inputs/typedef2.c @@ -0,0 +1,4 @@ +typedef int Typedef1; +typedef double Typedef2; +Typedef1 x1; +Typedef2 x2; diff --git a/test/ASTMerge/Inputs/var1.c b/test/ASTMerge/Inputs/var1.c new file mode 100644 index 0000000..4f5cbe1 --- /dev/null +++ b/test/ASTMerge/Inputs/var1.c @@ -0,0 +1,7 @@ +int *x0; +float **x1; +#include "var1.h" +int xarray0[17]; +int xarray1[]; +int xarray2[18]; +int xarray3[18]; diff --git a/test/ASTMerge/Inputs/var1.h b/test/ASTMerge/Inputs/var1.h new file mode 100644 index 0000000..1518e17 --- /dev/null +++ b/test/ASTMerge/Inputs/var1.h @@ -0,0 +1 @@ +double x2; diff --git a/test/ASTMerge/Inputs/var2.c b/test/ASTMerge/Inputs/var2.c new file mode 100644 index 0000000..01986e4 --- /dev/null +++ b/test/ASTMerge/Inputs/var2.c @@ -0,0 +1,7 @@ +int *x0; +double *x1; +int x2; +int xarray0[17]; +int xarray1[17]; +int xarray2[]; +int xarray3[17]; |