[PATCH] D155396: [Sema][ObjC] Propagating value-dependent errors into BlockExpr

Haojian Wu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Jul 21 03:05:00 PDT 2023


hokein added a comment.

thanks!



================
Comment at: clang/lib/Sema/SemaStmt.cpp:3736
+    BlockDecl *BD = CurBlock->TheDecl;
+    if (!BD->isInvalidDecl() && RetValExp && RetValExp->containsErrors())
+      BD->setInvalidDecl();
----------------
nit: the `isInvalidDecl` check is not need, we can inline the `RetValExpr` to the above if as well.

```
if (auto *CurBlock = dyn_cast<BlockScopeInfo>(CurCap); CurBlock && CurCap->HasImplicitReturnType && RetValExp && RetValExp->containsErrors()) 
  CurBlock->TheDecl->setInvalidDecl();
```


================
Comment at: clang/test/SemaObjC/crash-on-val-dep-block-expr.m:1
+// RUN: %clang_cc1 -fblocks -fsyntax-only -verify %s
+// no crash
----------------
can you move these tests to `llvm-project/clang/test/AST/ast-dump-recovery.c`?


Repository:
  rZORG LLVM Github Zorg

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D155396/new/

https://reviews.llvm.org/D155396



More information about the cfe-commits mailing list