================ @@ -389,10 +391,28 @@ template <class Emitter> class LocalScope : public VariableScope<Emitter> { if (!Local.Desc->isPrimitive() && !Local.Desc->isPrimitiveArray()) { this->Ctx->emitGetPtrLocal(Local.Offset, SourceInfo{}); this->Ctx->emitRecordDestruction(Local.Desc); + removeIfStoredOpaqueValue(Local); } } } + void removeStoredOpaqueValues() { + if (!Idx) + return; + + for (Scope::Local &Local : this->Ctx->Descriptors[*Idx]) { + removeIfStoredOpaqueValue(Local); + } + } + + void removeIfStoredOpaqueValue(const Scope::Local &Local) { + if (auto *OVE = + llvm::dyn_cast_or_null<OpaqueValueExpr>(Local.Desc->asExpr()); ---------------- tbaederr wrote:
```suggestion llvm::dyn_cast_if_present<OpaqueValueExpr>(Local.Desc->asExpr()); ``` https://github.com/llvm/llvm-project/pull/70053 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits