xref: /llvm-project/clang/test/AST/ast-dump-types-errors-json.cpp (revision 6d8e5c968538eff2c024d46d5715de0828a69407)
1 // RUN: not %clang_cc1 -triple x86_64-unknown-unknown -fsyntax-only -ast-dump=json -ast-dump-filter Test %s | FileCheck %s
2 
3 using TestContainsErrors = int[sizeof(undef())];
4 
5 // CHECK:  "kind": "TypeAliasDecl",
6 // CHECK-NEXT:  "loc": {
7 // CHECK-NEXT:   "offset": {{[0-9]+}},
8 // CHECK-NEXT:   "file": "{{.*}}",
9 // CHECK-NEXT:   "line": 3,
10 // CHECK-NEXT:   "col": 7,
11 // CHECK-NEXT:   "tokLen": 18
12 // CHECK-NEXT:  },
13 // CHECK-NEXT:  "range": {
14 // CHECK-NEXT:   "begin": {
15 // CHECK-NEXT:    "offset": {{[0-9]+}},
16 // CHECK-NEXT:    "col": 1,
17 // CHECK-NEXT:    "tokLen": 5
18 // CHECK-NEXT:   },
19 // CHECK-NEXT:   "end": {
20 // CHECK-NEXT:    "offset": {{[0-9]+}},
21 // CHECK-NEXT:    "col": 47,
22 // CHECK-NEXT:    "tokLen": 1
23 // CHECK-NEXT:   }
24 // CHECK-NEXT:  },
25 // CHECK-NEXT:  "name": "TestContainsErrors",
26 // CHECK-NEXT:  "type": {
27 // CHECK-NEXT:   "qualType": "int[sizeof (<recovery-expr>(undef))]"
28 // CHECK-NEXT:  },
29 // CHECK-NEXT:  "inner": [
30 // CHECK-NEXT:   {
31 // CHECK-NEXT:    "id": "0x{{.*}}",
32 // CHECK-NEXT:    "kind": "DependentSizedArrayType",
33 // CHECK-NEXT:    "type": {
34 // CHECK-NEXT:     "qualType": "int[sizeof (<recovery-expr>(undef))]"
35 // CHECK-NEXT:    },
36 // CHECK-NEXT:    "containsErrors": true,
37 // CHECK-NEXT:    "isDependent": true,
38 // CHECK-NEXT:    "isInstantiationDependent": true,
39 // CHECK-NEXT:    "inner": [
40 // CHECK-NEXT:     {
41 // CHECK-NEXT:      "id": "0x{{.*}}",
42 // CHECK-NEXT:      "kind": "BuiltinType",
43 // CHECK-NEXT:      "type": {
44 // CHECK-NEXT:       "qualType": "int"
45 // CHECK-NEXT:      }
46 // CHECK-NEXT:     },
47 // CHECK-NEXT:     {
48 // CHECK-NEXT:      "id": "0x{{.*}}",
49 // CHECK-NEXT:      "kind": "UnaryExprOrTypeTraitExpr",
50 // CHECK-NEXT:      "range": {
51 // CHECK-NEXT:       "begin": {
52 // CHECK-NEXT:        "offset": {{[0-9]+}},
53 // CHECK-NEXT:        "col": 32,
54 // CHECK-NEXT:        "tokLen": 6
55 // CHECK-NEXT:       },
56 // CHECK-NEXT:       "end": {
57 // CHECK-NEXT:        "offset": {{[0-9]+}},
58 // CHECK-NEXT:        "col": 46,
59 // CHECK-NEXT:        "tokLen": 1
60 // CHECK-NEXT:       }
61 // CHECK-NEXT:      },
62 // CHECK-NEXT:      "type": {
63 // CHECK-NEXT:       "qualType": "unsigned long"
64 // CHECK-NEXT:      },
65 // CHECK-NEXT:      "valueCategory": "prvalue",
66 // CHECK-NEXT:      "name": "sizeof",
67 // CHECK-NEXT:      "inner": [
68 // CHECK-NEXT:       {
69 // CHECK-NEXT:        "id": "0x{{.*}}",
70 // CHECK-NEXT:        "kind": "ParenExpr",
71 // CHECK-NEXT:        "range": {
72 // CHECK-NEXT:         "begin": {
73 // CHECK-NEXT:          "offset": {{[0-9]+}},
74 // CHECK-NEXT:          "col": 38,
75 // CHECK-NEXT:          "tokLen": 1
76 // CHECK-NEXT:         },
77 // CHECK-NEXT:         "end": {
78 // CHECK-NEXT:          "offset": {{[0-9]+}},
79 // CHECK-NEXT:          "col": 46,
80 // CHECK-NEXT:          "tokLen": 1
81 // CHECK-NEXT:         }
82 // CHECK-NEXT:        },
83 // CHECK-NEXT:        "type": {
84 // CHECK-NEXT:         "qualType": "<dependent type>"
85 // CHECK-NEXT:        },
86 // CHECK-NEXT:        "valueCategory": "lvalue",
87 // CHECK-NEXT:        "inner": [
88 // CHECK-NEXT:         {
89 // CHECK-NEXT:          "id": "0x{{.*}}",
90 // CHECK-NEXT:          "kind": "RecoveryExpr",
91 // CHECK-NEXT:          "range": {
92 // CHECK-NEXT:           "begin": {
93 // CHECK-NEXT:            "offset": {{[0-9]+}},
94 // CHECK-NEXT:            "col": 39,
95 // CHECK-NEXT:            "tokLen": 5
96 // CHECK-NEXT:           },
97 // CHECK-NEXT:           "end": {
98 // CHECK-NEXT:            "offset": {{[0-9]+}},
99 // CHECK-NEXT:            "col": 45,
100 // CHECK-NEXT:            "tokLen": 1
101 // CHECK-NEXT:           }
102 // CHECK-NEXT:          },
103 // CHECK-NEXT:          "type": {
104 // CHECK-NEXT:           "qualType": "<dependent type>"
105 // CHECK-NEXT:          },
106 // CHECK-NEXT:          "valueCategory": "lvalue",
107 // CHECK-NEXT:          "inner": [
108 // CHECK-NEXT:           {
109 // CHECK-NEXT:            "id": "0x{{.*}}",
110 // CHECK-NEXT:            "kind": "UnresolvedLookupExpr",
111 // CHECK-NEXT:            "range": {
112 // CHECK-NEXT:             "begin": {
113 // CHECK-NEXT:              "offset": {{[0-9]+}},
114 // CHECK-NEXT:              "col": 39,
115 // CHECK-NEXT:              "tokLen": 5
116 // CHECK-NEXT:             },
117 // CHECK-NEXT:             "end": {
118 // CHECK-NEXT:              "offset": {{[0-9]+}},
119 // CHECK-NEXT:              "col": 39,
120 // CHECK-NEXT:              "tokLen": 5
121 // CHECK-NEXT:             }
122 // CHECK-NEXT:            },
123 // CHECK-NEXT:            "type": {
124 // CHECK-NEXT:             "qualType": "<overloaded function type>"
125 // CHECK-NEXT:            },
126 // CHECK-NEXT:            "valueCategory": "lvalue",
127 // CHECK-NEXT:            "usesADL": true,
128 // CHECK-NEXT:            "name": "undef",
129 // CHECK-NEXT:            "lookups": []
130 // CHECK-NEXT:           }
131 // CHECK-NEXT:          ]
132 // CHECK-NEXT:         }
133 // CHECK-NEXT:        ]
134 // CHECK-NEXT:       }
135 // CHECK-NEXT:      ]
136 // CHECK-NEXT:     }
137 // CHECK-NEXT:    ]
138 // CHECK-NEXT:   }
139 // CHECK-NEXT:  ]
140 // CHECK-NEXT: }
141