https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80683
--- Comment #2 from Xi Ruoyao <ryxi at stu dot xidian.edu.cn> --- I don't think it's PR66139. In PR66139, the exception is caught, but some destructors aren't called. In this PR, the exception is not caught at all. For this PR, the problem is: 1) GCC created "constexpr B::B()" and call A::A() in it. 2) In optimization, GCC think a constexpr doesn't throw. So the EH code is optimized away. 3) But actually B::B() throws and shouldn't be a constexpr. I'll read the standard and find out what should we do for this.