This enables unwinders to step past that frame on architectures that
don't use DWARF unwinding (such as armv7), e.g. when debugging. The
problem should theoretically be architecture-agnostic, but according to
https://discourse.llvm.org/t/51633/2 it gets masked on architectures
that use DWARF unwind info.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
clang/lib/CodeGen/ItaniumCXXABI.cpp | ||
---|---|---|
4698 | We probably want to call SetLLVMFunctionAttributesForDefinition() here instead. The end result isn't that much different, but it indicates the intent more clearly, and hopefully we avoid hitting similar issues in this code in the future. |
Comment Actions
I searched for __clang_call_terminate in the Clang test directory when I was working on this diff. Most tests were testing calls to it, not definitions. There were a couple of tests checking the definition, but they seemed pretty targeted (e.g. https://github.com/llvm/llvm-project/blob/main/clang/test/CodeGenCXX/noexcept.cpp) or auto-generated, so I figured having a separate test case for the specific thing I cared about was best.
We probably want to call SetLLVMFunctionAttributesForDefinition() here instead. The end result isn't that much different, but it indicates the intent more clearly, and hopefully we avoid hitting similar issues in this code in the future.