danix800 updated this revision to Diff 543005. danix800 added a comment. Update ReleaseNotes
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D155984/new/ https://reviews.llvm.org/D155984 Files: clang/docs/ReleaseNotes.rst clang/lib/Sema/SemaExpr.cpp clang/test/AST/ast-dump-recovery.m Index: clang/test/AST/ast-dump-recovery.m =================================================================== --- clang/test/AST/ast-dump-recovery.m +++ clang/test/AST/ast-dump-recovery.m @@ -16,3 +16,9 @@ // CHECK-NEXT: `-DeclRefExpr {{.*}} 'foo' foo.undef; } + +// CHECK: `-BlockExpr {{.*}} 'int (^)(int, int)' +// CHECK-NEXT: `-BlockDecl {{.*}} invalid +int (^a)(int, int) = ^(int, undefine b) { + return 1; +}; Index: clang/lib/Sema/SemaExpr.cpp =================================================================== --- clang/lib/Sema/SemaExpr.cpp +++ clang/lib/Sema/SemaExpr.cpp @@ -16959,6 +16959,9 @@ PushOnScopeChains(AI, CurBlock->TheScope); } + + if (AI->isInvalidDecl()) + CurBlock->TheDecl->setInvalidDecl(); } } Index: clang/docs/ReleaseNotes.rst =================================================================== --- clang/docs/ReleaseNotes.rst +++ clang/docs/ReleaseNotes.rst @@ -663,6 +663,8 @@ - Correcly diagnose jumps into statement expressions. This ensures the behavior of Clang is consistent with GCC. (`#63682 <https://github.com/llvm/llvm-project/issues/63682>`_) +- Invalidate BlockDecl with invalid ParmVarDecl + (`#64005 <https://github.com/llvm/llvm-project/issues/64005>_`) Bug Fixes to Compiler Builtins ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Index: clang/test/AST/ast-dump-recovery.m =================================================================== --- clang/test/AST/ast-dump-recovery.m +++ clang/test/AST/ast-dump-recovery.m @@ -16,3 +16,9 @@ // CHECK-NEXT: `-DeclRefExpr {{.*}} 'foo' foo.undef; } + +// CHECK: `-BlockExpr {{.*}} 'int (^)(int, int)' +// CHECK-NEXT: `-BlockDecl {{.*}} invalid +int (^a)(int, int) = ^(int, undefine b) { + return 1; +}; Index: clang/lib/Sema/SemaExpr.cpp =================================================================== --- clang/lib/Sema/SemaExpr.cpp +++ clang/lib/Sema/SemaExpr.cpp @@ -16959,6 +16959,9 @@ PushOnScopeChains(AI, CurBlock->TheScope); } + + if (AI->isInvalidDecl()) + CurBlock->TheDecl->setInvalidDecl(); } } Index: clang/docs/ReleaseNotes.rst =================================================================== --- clang/docs/ReleaseNotes.rst +++ clang/docs/ReleaseNotes.rst @@ -663,6 +663,8 @@ - Correcly diagnose jumps into statement expressions. This ensures the behavior of Clang is consistent with GCC. (`#63682 <https://github.com/llvm/llvm-project/issues/63682>`_) +- Invalidate BlockDecl with invalid ParmVarDecl + (`#64005 <https://github.com/llvm/llvm-project/issues/64005>_`) Bug Fixes to Compiler Builtins ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits