https://bugs.llvm.org/show_bug.cgi?id=40277

            Bug ID: 40277
           Summary: lld should synthesize .ARM.exidx entries for code
                    without them
           Product: lld
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: ELF
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected], [email protected]

(Apologies if I use vague/handwavy terminology here; I'm not super familiar
with ARM EH or linker terminology)

When a function is defined in assembly, it appears that -- reasonably so --
there will be no unwinding information in .ARM.exidx/.ARM.extab to go along
with it, unless the user goes out of their way to somehow specify that.

This becomes problematic when this assembly code is linked with C/C++ that's
built with unwinding info. AFAICT, the .ARM.exidx entry selected to try to
unwind this asm is the .ARM.exidx entry of the nearest function(s) laid out
before the asm. This... can work, but doesn't always. :)

Gold appears to handle this by synthesizing `cantunwind` .ARM.exidx entries for
functions/sections that have no associated .ARM.exidx entry. I think it would
be reasonable for lld to do the same.

-- 
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

Reply via email to