|
1 |
| -// RUN: %clang_cc1 -triple x86_64-unknown-unknown -std=c++17 -ast-dump=json %s | FileCheck --check-prefix=JSON %s |
2 |
| -// RUN: %clang_cc1 -triple x86_64-unknown-unknown -std=c++17 -ast-print %s > %t |
| 1 | +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -std=c++20 -ast-dump=json %s | FileCheck --check-prefix=JSON %s |
| 2 | +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -std=c++20 -ast-print %s > %t |
3 | 3 | // RUN: FileCheck < %t %s -check-prefix=CHECK1
|
4 | 4 | // RUN: FileCheck < %t %s -check-prefix=CHECK2
|
5 |
| -// RUN: %clang_cc1 -triple x86_64-unknown-unknown -std=c++17 -ast-dump %s | FileCheck --check-prefix=DUMP %s |
| 5 | +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -std=c++20 -ast-dump %s | FileCheck --check-prefix=DUMP %s |
6 | 6 |
|
7 | 7 | // Test with serialization:
|
8 |
| -// RUN: %clang_cc1 -triple x86_64-unknown-unknown -std=c++17 -emit-pch -o %t %s |
9 |
| -// RUN: %clang_cc1 -triple x86_64-unknown-unknown -x c++ -std=c++17 -include-pch %t \ |
| 8 | +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -std=c++20 -emit-pch -o %t %s |
| 9 | +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -x c++ -std=c++20 -include-pch %t \ |
10 | 10 | // RUN: -ast-dump-all /dev/null \
|
11 | 11 | // RUN: | sed -e "s/ <undeserialized declarations>//" -e "s/ imported//" \
|
12 | 12 | // RUN: | FileCheck --strict-whitespace --check-prefix=DUMP %s
|
@@ -135,6 +135,17 @@ namespace test7 {
|
135 | 135 | // DUMP: ClassTemplateSpecializationDecl {{.*}} struct A definition explicit_instantiation_definition strict-pack-match{{$}}
|
136 | 136 | } // namespce test7
|
137 | 137 |
|
| 138 | +namespace test8 { |
| 139 | +template<_Complex int x> |
| 140 | +struct pr126341; |
| 141 | +template<> |
| 142 | +struct pr126341<{1, 2}>; |
| 143 | +// DUMP-LABEL: NamespaceDecl {{.*}} test8{{$}} |
| 144 | +// DUMP-NEXT: |-ClassTemplateDecl {{.*}} pr126341 |
| 145 | +// DUMP: `-ClassTemplateSpecializationDecl {{.*}} pr126341 |
| 146 | +// DUMP: `-TemplateArgument structural value '1+2i' |
| 147 | +} // namespace test8 |
| 148 | + |
138 | 149 | // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
|
139 | 150 |
|
140 | 151 |
|
@@ -486,6 +497,7 @@ namespace test7 {
|
486 | 497 | // JSON-NEXT: "trivial": true
|
487 | 498 | // JSON-NEXT: },
|
488 | 499 | // JSON-NEXT: "defaultCtor": {
|
| 500 | +// JSON-NEXT: "defaultedIsConstexpr": true, |
489 | 501 | // JSON-NEXT: "exists": true,
|
490 | 502 | // JSON-NEXT: "nonTrivial": true,
|
491 | 503 | // JSON-NEXT: "userProvided": true
|
@@ -819,6 +831,7 @@ namespace test7 {
|
819 | 831 | // JSON-NEXT: "trivial": true
|
820 | 832 | // JSON-NEXT: },
|
821 | 833 | // JSON-NEXT: "defaultCtor": {
|
| 834 | +// JSON-NEXT: "defaultedIsConstexpr": true, |
822 | 835 | // JSON-NEXT: "exists": true,
|
823 | 836 | // JSON-NEXT: "nonTrivial": true,
|
824 | 837 | // JSON-NEXT: "userProvided": true
|
@@ -1408,6 +1421,7 @@ namespace test7 {
|
1408 | 1421 | // JSON-NEXT: "qualType": "void () noexcept"
|
1409 | 1422 | // JSON-NEXT: },
|
1410 | 1423 | // JSON-NEXT: "inline": true,
|
| 1424 | +// JSON-NEXT: "constexpr": true, |
1411 | 1425 | // JSON-NEXT: "explicitlyDefaulted": "default"
|
1412 | 1426 | // JSON-NEXT: }
|
1413 | 1427 | // JSON-NEXT: ]
|
@@ -1454,6 +1468,7 @@ namespace test7 {
|
1454 | 1468 | // JSON-NEXT: "trivial": true
|
1455 | 1469 | // JSON-NEXT: },
|
1456 | 1470 | // JSON-NEXT: "defaultCtor": {
|
| 1471 | +// JSON-NEXT: "defaultedIsConstexpr": true, |
1457 | 1472 | // JSON-NEXT: "exists": true,
|
1458 | 1473 | // JSON-NEXT: "nonTrivial": true,
|
1459 | 1474 | // JSON-NEXT: "userProvided": true
|
@@ -2067,6 +2082,7 @@ namespace test7 {
|
2067 | 2082 | // JSON-NEXT: "qualType": "void () noexcept"
|
2068 | 2083 | // JSON-NEXT: },
|
2069 | 2084 | // JSON-NEXT: "inline": true,
|
| 2085 | +// JSON-NEXT: "constexpr": true, |
2070 | 2086 | // JSON-NEXT: "explicitlyDefaulted": "default"
|
2071 | 2087 | // JSON-NEXT: }
|
2072 | 2088 | // JSON-NEXT: ]
|
@@ -6158,6 +6174,148 @@ namespace test7 {
|
6158 | 6174 | // JSON-NEXT: ]
|
6159 | 6175 | // JSON-NEXT: }
|
6160 | 6176 | // JSON-NEXT: ]
|
| 6177 | +// JSON-NEXT: }, |
| 6178 | +// JSON-NEXT: { |
| 6179 | +// JSON-NEXT: "id": "0x{{.*}}", |
| 6180 | +// JSON-NEXT: "kind": "NamespaceDecl", |
| 6181 | +// JSON-NEXT: "loc": { |
| 6182 | +// JSON-NEXT: "offset": 4339, |
| 6183 | +// JSON-NEXT: "line": 138, |
| 6184 | +// JSON-NEXT: "col": 11, |
| 6185 | +// JSON-NEXT: "tokLen": 5 |
| 6186 | +// JSON-NEXT: }, |
| 6187 | +// JSON-NEXT: "range": { |
| 6188 | +// JSON-NEXT: "begin": { |
| 6189 | +// JSON-NEXT: "offset": 4329, |
| 6190 | +// JSON-NEXT: "col": 1, |
| 6191 | +// JSON-NEXT: "tokLen": 9 |
| 6192 | +// JSON-NEXT: }, |
| 6193 | +// JSON-NEXT: "end": { |
| 6194 | +// JSON-NEXT: "offset": 4648, |
| 6195 | +// JSON-NEXT: "line": 147, |
| 6196 | +// JSON-NEXT: "col": 1, |
| 6197 | +// JSON-NEXT: "tokLen": 1 |
| 6198 | +// JSON-NEXT: } |
| 6199 | +// JSON-NEXT: }, |
| 6200 | +// JSON-NEXT: "name": "test8", |
| 6201 | +// JSON-NEXT: "inner": [ |
| 6202 | +// JSON-NEXT: { |
| 6203 | +// JSON-NEXT: "id": "0x{{.*}}", |
| 6204 | +// JSON-NEXT: "kind": "ClassTemplateDecl", |
| 6205 | +// JSON-NEXT: "loc": { |
| 6206 | +// JSON-NEXT: "offset": 4379, |
| 6207 | +// JSON-NEXT: "line": 140, |
| 6208 | +// JSON-NEXT: "col": 8, |
| 6209 | +// JSON-NEXT: "tokLen": 8 |
| 6210 | +// JSON-NEXT: }, |
| 6211 | +// JSON-NEXT: "range": { |
| 6212 | +// JSON-NEXT: "begin": { |
| 6213 | +// JSON-NEXT: "offset": 4347, |
| 6214 | +// JSON-NEXT: "line": 139, |
| 6215 | +// JSON-NEXT: "col": 1, |
| 6216 | +// JSON-NEXT: "tokLen": 8 |
| 6217 | +// JSON-NEXT: }, |
| 6218 | +// JSON-NEXT: "end": { |
| 6219 | +// JSON-NEXT: "offset": 4379, |
| 6220 | +// JSON-NEXT: "line": 140, |
| 6221 | +// JSON-NEXT: "col": 8, |
| 6222 | +// JSON-NEXT: "tokLen": 8 |
| 6223 | +// JSON-NEXT: } |
| 6224 | +// JSON-NEXT: }, |
| 6225 | +// JSON-NEXT: "name": "pr126341", |
| 6226 | +// JSON-NEXT: "inner": [ |
| 6227 | +// JSON-NEXT: { |
| 6228 | +// JSON-NEXT: "id": "0x{{.*}}", |
| 6229 | +// JSON-NEXT: "kind": "NonTypeTemplateParmDecl", |
| 6230 | +// JSON-NEXT: "loc": { |
| 6231 | +// JSON-NEXT: "offset": 4369, |
| 6232 | +// JSON-NEXT: "line": 139, |
| 6233 | +// JSON-NEXT: "col": 23, |
| 6234 | +// JSON-NEXT: "tokLen": 1 |
| 6235 | +// JSON-NEXT: }, |
| 6236 | +// JSON-NEXT: "range": { |
| 6237 | +// JSON-NEXT: "begin": { |
| 6238 | +// JSON-NEXT: "offset": 4356, |
| 6239 | +// JSON-NEXT: "col": 10, |
| 6240 | +// JSON-NEXT: "tokLen": 8 |
| 6241 | +// JSON-NEXT: }, |
| 6242 | +// JSON-NEXT: "end": { |
| 6243 | +// JSON-NEXT: "offset": 4369, |
| 6244 | +// JSON-NEXT: "col": 23, |
| 6245 | +// JSON-NEXT: "tokLen": 1 |
| 6246 | +// JSON-NEXT: } |
| 6247 | +// JSON-NEXT: }, |
| 6248 | +// JSON-NEXT: "name": "x", |
| 6249 | +// JSON-NEXT: "type": { |
| 6250 | +// JSON-NEXT: "qualType": "_Complex int" |
| 6251 | +// JSON-NEXT: }, |
| 6252 | +// JSON-NEXT: "depth": 0, |
| 6253 | +// JSON-NEXT: "index": 0 |
| 6254 | +// JSON-NEXT: }, |
| 6255 | +// JSON-NEXT: { |
| 6256 | +// JSON-NEXT: "id": "0x{{.*}}", |
| 6257 | +// JSON-NEXT: "kind": "CXXRecordDecl", |
| 6258 | +// JSON-NEXT: "loc": { |
| 6259 | +// JSON-NEXT: "offset": 4379, |
| 6260 | +// JSON-NEXT: "line": 140, |
| 6261 | +// JSON-NEXT: "col": 8, |
| 6262 | +// JSON-NEXT: "tokLen": 8 |
| 6263 | +// JSON-NEXT: }, |
| 6264 | +// JSON-NEXT: "range": { |
| 6265 | +// JSON-NEXT: "begin": { |
| 6266 | +// JSON-NEXT: "offset": 4372, |
| 6267 | +// JSON-NEXT: "col": 1, |
| 6268 | +// JSON-NEXT: "tokLen": 6 |
| 6269 | +// JSON-NEXT: }, |
| 6270 | +// JSON-NEXT: "end": { |
| 6271 | +// JSON-NEXT: "offset": 4379, |
| 6272 | +// JSON-NEXT: "col": 8, |
| 6273 | +// JSON-NEXT: "tokLen": 8 |
| 6274 | +// JSON-NEXT: } |
| 6275 | +// JSON-NEXT: }, |
| 6276 | +// JSON-NEXT: "name": "pr126341", |
| 6277 | +// JSON-NEXT: "tagUsed": "struct" |
| 6278 | +// JSON-NEXT: }, |
| 6279 | +// JSON-NEXT: { |
| 6280 | +// JSON-NEXT: "id": "0x{{.*}}", |
| 6281 | +// JSON-NEXT: "kind": "ClassTemplateSpecializationDecl", |
| 6282 | +// JSON-NEXT: "name": "pr126341" |
| 6283 | +// JSON-NEXT: } |
| 6284 | +// JSON-NEXT: ] |
| 6285 | +// JSON-NEXT: }, |
| 6286 | +// JSON-NEXT: { |
| 6287 | +// JSON-NEXT: "id": "0x{{.*}}", |
| 6288 | +// JSON-NEXT: "kind": "ClassTemplateSpecializationDecl", |
| 6289 | +// JSON-NEXT: "loc": { |
| 6290 | +// JSON-NEXT: "offset": 4407, |
| 6291 | +// JSON-NEXT: "line": 142, |
| 6292 | +// JSON-NEXT: "col": 8, |
| 6293 | +// JSON-NEXT: "tokLen": 8 |
| 6294 | +// JSON-NEXT: }, |
| 6295 | +// JSON-NEXT: "range": { |
| 6296 | +// JSON-NEXT: "begin": { |
| 6297 | +// JSON-NEXT: "offset": 4389, |
| 6298 | +// JSON-NEXT: "line": 141, |
| 6299 | +// JSON-NEXT: "col": 1, |
| 6300 | +// JSON-NEXT: "tokLen": 8 |
| 6301 | +// JSON-NEXT: }, |
| 6302 | +// JSON-NEXT: "end": { |
| 6303 | +// JSON-NEXT: "offset": 4422, |
| 6304 | +// JSON-NEXT: "line": 142, |
| 6305 | +// JSON-NEXT: "col": 23, |
| 6306 | +// JSON-NEXT: "tokLen": 1 |
| 6307 | +// JSON-NEXT: } |
| 6308 | +// JSON-NEXT: }, |
| 6309 | +// JSON-NEXT: "name": "pr126341", |
| 6310 | +// JSON-NEXT: "tagUsed": "struct", |
| 6311 | +// JSON-NEXT: "inner": [ |
| 6312 | +// JSON-NEXT: { |
| 6313 | +// JSON-NEXT: "kind": "TemplateArgument", |
| 6314 | +// JSON-NEXT: "value": "1+2i" |
| 6315 | +// JSON-NEXT: } |
| 6316 | +// JSON-NEXT: ] |
| 6317 | +// JSON-NEXT: } |
| 6318 | +// JSON-NEXT: ] |
6161 | 6319 | // JSON-NEXT: }
|
6162 | 6320 | // JSON-NEXT: ]
|
6163 | 6321 | // JSON-NEXT: }
|
0 commit comments