https://bugs.llvm.org/show_bug.cgi?id=32034
Richard Smith <[email protected]> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |FIXED
--- Comment #4 from Richard Smith <[email protected]> ---
This was broken before the constexpr if changes; it's failing now due to a
change in stack layout. The problem is that AtomicExprEvaluator does this:
bool ZeroInitialization(const Expr *E) {
ImplicitValueInitExpr VIE(
E->getType()->castAs<AtomicType>()->getValueType());
return Evaluate(Result, Info, &VIE);
}
... but Evaluate uses the Expr* as a key in a map when it's creating a class
temporary. Somewhat more reduced testcase:
struct B {};
struct C { _Atomic(B) c; };
constexpr int n = (C(), C(), 0);
Fixed by r295886.
--
You are receiving this mail because:
You are on the CC list for the bug._______________________________________________
llvm-bugs mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs