================
@@ -706,13 +706,22 @@ mlir::LogicalResult CIRGenFunction::emitGotoStmt(const 
clang::GotoStmt &s) {
 
 mlir::LogicalResult
 CIRGenFunction::emitIndirectGotoStmt(const IndirectGotoStmt &s) {
+  // An indirect goto that branches out of a scope needing cleanup (a VLA stack
----------------
Andres-Salamanca wrote:

In Classic CodeGen, if it detects
```cpp
if (const LabelDecl *Target = S.getConstantTarget()) {
```
it emits an EmitBranchThroughCleanup() directly to the target label. Should we 
support the same case here as well?
Also, related to cleanups, I think we should add support for GotoIndirectOp in 
`CIRCleanupScopeOpFlattening::collectExits()` so indirect gotos are also 
collected when leaving a cleanup scope. @andykaylor, please correct me if I'm 
missing something here

https://github.com/llvm/llvm-project/pull/206176
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to