brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · a85aec7 Raw
142 lines · c
1typedef int Int;2typedef float Float;3 4// Matches5struct S0 {6  Int field1;7  Float field2;8};9 10struct S0 x0;11 12// Mismatch in field type13struct S1 {14  Int field1;15  int field2;16};17 18struct S1 x1;19 20// Mismatch in tag kind.21struct S2 { int i; float f; } x2;22 23// Missing fields24struct S3 { int i; float f; double d; } x3;25 26// Extra fields27struct S4 { int i; } x4;28 29// Bit-field matches30struct S5 { int i : 8; unsigned j : 8; } x5;31 32// Bit-field mismatch33struct S6 { int i : 8; unsigned j : 8; } x6;34 35// Bit-field mismatch36struct S7 { int i : 8; unsigned j : 8; } x7;37 38// Incomplete type39struct S8 *x8;40 41// Incomplete type42struct S9 { int i; float f; } *x9;43 44// Incomplete type45struct S10 *x10;46 47// Matches48struct ListNode {49  int value;50  struct ListNode *Next;51} xList;52 53// Mismatch due to struct used internally54struct DeepError {55  int value;56  struct DeeperError { int i; int f; } *Deeper;57} xDeep;58 59// Matches60struct {61  Int i;62  float f;63} x11;64 65// Matches66typedef struct {67  Int i;68  float f;69} S12;70 71S12 x12;72 73// Mismatch74typedef struct {75  Float i; // Mismatch here.76  float f;77} S13;78 79S13 x13;80 81// Matches82struct Unnamed {83  union {84    struct {85      int i;86    } S;87    struct {88      float i;89    } R;90  } U;91} x14;92 93// Matches94struct DeepUnnamed {95  union {96    union {97      struct {98        long i;99      } S;100      struct {101        int i;102      } R;103    } U1;104    union {105      struct {106        long i;107      } S;108      struct {109        float i;110      } T;111    } U2;112  } U;113  struct {114    long i;115  } V;116} x15;117 118// Mismatch due to unnamed struct used internally119struct DeepUnnamedError {120  union {121    union {122      struct {123        long i;124      } S;125      struct {126        int i;127      } R;128    } U1;129    union {130      struct {131        long i; // Mismatch here.132      } S;133      struct {134        float i;135      } T;136    } U2;137  } U;138  struct {139    long i;140  } V;141} x16;142