[clang] [Clang][Sema] Fix crash in __builtin_dump_struct with immediate callables (PR #192880)

Vladislav Semykin via cfe-commits cfe-commits at lists.llvm.org
Sun May 3 09:37:30 PDT 2026


================
@@ -18469,6 +18463,15 @@ static void RemoveNestedImmediateInvocation(
       // Lambdas have already been processed inside their eval contexts.
       return E;
     }
+
+    // Default TransformOpaqueValueExpr asserts on OVEs that have a SourceExpr.
+    // __builtin_dump_struct binds the record pointer in an OpaqueValueExpr
+    // inside a PseudoObjectExpr; ComplexRemove can root inside the PSE's
+    // semantic form and reach that OVE without the binding setup the assert
+    // expects. The PSE owns the binding; nothing under ComplexRemove needs to
+    // rebuild the OVE's source here.
+    ExprResult TransformOpaqueValueExpr(OpaqueValueExpr *E) { return E; }
+
----------------
ViNN280801 wrote:

Done, thank you, and I apologize for my first noise

https://github.com/llvm/llvm-project/pull/192880


More information about the cfe-commits mailing list