Quuxplusone added a comment. > Well, I'm saying two things. First, it is not clear to me what the expected > behavior of that code is under the standard. The fact that it appears to work > in one particular implementation is not in any way conclusive; we have to > look at the specification.
Aha, I had thought it worked on "both Clang and GCC," but now I see that Godbolt uses libsupc++ for both Clang and GCC (and that's where the issue is). Switching to a branch that uses libc++abi, I see that libc++abi just calls `std::terminate` in this situation: https://godbolt.org/z/4s8aMvr3K > Second, I think it only appears to work: looking at the runtime code in both > libc++abi and libsupc++, it leaks the memory of the exception object, which > it's clearly not allowed to do. You should be able to fairly easy prove that > by looking at heap usage if you do it in a loop. Yep, memory leak confirmed. (Via the same Godbolt: https://godbolt.org/z/4s8aMvr3K ) So okay, never mind me. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D108905/new/ https://reviews.llvm.org/D108905 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits