diff options
| author | Aaron Ballman <aaron@aaronballman.com> | 2019-08-29 20:00:40 +0000 |
|---|---|---|
| committer | Aaron Ballman <aaron@aaronballman.com> | 2019-08-29 20:00:40 +0000 |
| commit | 1755617214e8a0412b0aa985af2677a56c83d843 (patch) | |
| tree | e5d74cdcfc08fc12439897d3b632197555197785 /clang/test | |
| parent | 0785f8d0bb70b1485573556d1315784ebd085af3 (diff) | |
| download | bcm5719-llvm-1755617214e8a0412b0aa985af2677a56c83d843.tar.gz bcm5719-llvm-1755617214e8a0412b0aa985af2677a56c83d843.zip | |
Avoid crash when dumping NULL Type as JSON.
Patch by Bert Belder.
llvm-svn: 370401
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/AST/ast-dump-types-json.cpp | 77 | ||||
| -rw-r--r-- | clang/test/AST/gen_ast_dump_json_test.py | 2 |
2 files changed, 78 insertions, 1 deletions
diff --git a/clang/test/AST/ast-dump-types-json.cpp b/clang/test/AST/ast-dump-types-json.cpp index 8b9bdd5fe66..d25aea8d85b 100644 --- a/clang/test/AST/ast-dump-types-json.cpp +++ b/clang/test/AST/ast-dump-types-json.cpp @@ -20,6 +20,11 @@ typedef int T::*TestMemberDataPointerType; typedef int TestQualTypePrinting(const char* c); +typedef int TestUsingShadowDeclType; +namespace TestNamespaceWithUsingShadowType { +using ::TestUsingShadowDeclType; +} + // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py @@ -422,3 +427,75 @@ typedef int TestQualTypePrinting(const char* c); // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } + +// CHECK: "kind": "NamespaceDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 24, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 32 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 9 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "line": 26, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestNamespaceWithUsingShadowType", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UsingDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "line": 25, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 23 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 23 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "::TestUsingShadowDeclType" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UsingShadowDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 23 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 23 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 23 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "target": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "name": "TestUsingShadowDeclType" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } diff --git a/clang/test/AST/gen_ast_dump_json_test.py b/clang/test/AST/gen_ast_dump_json_test.py index 975039ead27..f1c9801fb10 100644 --- a/clang/test/AST/gen_ast_dump_json_test.py +++ b/clang/test/AST/gen_ast_dump_json_test.py @@ -20,7 +20,7 @@ def normalize(dict_var): normalize(e) elif type(v) is unicode: st = v.encode('utf-8') - if re.match(r"0x[0-9A-Fa-f]+", v): + if v != "0x0" and re.match(r"0x[0-9A-Fa-f]+", v): dict_var[k] = u'0x{{.*}}' elif os.path.isfile(v): dict_var[k] = u'{{.*}}' |

