diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 5d09c454dea290..4e60efa1c025ed 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -674,7 +674,8 @@ Bug Fixes in This Version value exprs is invalid. Propagating the error info up by replacing BlockExpr with a RecoveryExpr. This fixes: (`#63863 _`) -- Invalidate BlockDecl with invalid ParmVarDecl +- Invalidate BlockDecl with invalid ParmVarDecl. Remove redundant dump of + BlockDecl's ParmVarDecl (`#64005 _`) Bug Fixes to Compiler Builtins diff --git a/clang/include/clang/AST/ASTNodeTraverser.h b/clang/include/clang/AST/ASTNodeTraverser.h index 35efb81bb522ed..d649ef6816ca42 100644 --- a/clang/include/clang/AST/ASTNodeTraverser.h +++ b/clang/include/clang/AST/ASTNodeTraverser.h @@ -104,7 +104,8 @@ class ASTNodeTraverser Visit(Comment, Comment); // Decls within functions are visited by the body. - if (!isa(*D) && !isa(*D)) { + if (!isa(*D) && !isa(*D) && + !isa(*D)) { if (Traversal != TK_AsIs) { if (const auto *CTSD = dyn_cast(D)) { auto SK = CTSD->getSpecializationKind(); diff --git a/clang/test/AST/ast-dump-decl-json.m b/clang/test/AST/ast-dump-decl-json.m index 18450c9f82026f..9d82c6696cb524 100644 --- a/clang/test/AST/ast-dump-decl-json.m +++ b/clang/test/AST/ast-dump-decl-json.m @@ -1924,31 +1924,6 @@ void f(void) { // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "y", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } diff --git a/clang/test/AST/ast-dump-decl.m b/clang/test/AST/ast-dump-decl.m index 1157c99e459749..0b259d522645dc 100644 --- a/clang/test/AST/ast-dump-decl.m +++ b/clang/test/AST/ast-dump-decl.m @@ -142,12 +142,17 @@ @implementation TestObjCProperty { void TestBlockDecl(int x) { ^(int y, ...){ x; }; + int z; } // CHECK: FunctionDecl{{.*}}TestBlockDecl // CHECK: BlockDecl {{.+}} col:3 variadic // CHECK-NEXT: ParmVarDecl{{.*}} y 'int' // CHECK-NEXT: capture ParmVar{{.*}} 'x' 'int' // CHECK-NEXT: CompoundStmt +// CHECK-NEXT: ImplicitCastExpr +// CHECK-NEXT: DeclRefExpr{{.*}} 'x' +// CHECK-NEXT: DeclStmt +// CHECK-NEXT: VarDecl{{.*}} z @interface B + (int) foo;