[LLVMbugs] [Bug 24146] New: Bad unwinding information is output on ARM

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu Jul 16 03:04:32 PDT 2015


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

            Bug ID: 24146
           Summary: Bad unwinding information is output on ARM
           Product: new-bugs
           Version: 3.6
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: ben at curlybracket.co.uk
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Created attachment 14598
  --> https://llvm.org/bugs/attachment.cgi?id=14598&action=edit
repro.cpp

This has been verified with Clang/LLVM 3.6 and libunwind 1.1, vs GCC 4.8.4
which appears to work correctly. For each case mentioned here the environment
variable UNW_ARM_UNWIND_METHOD=4 so that libunwind uses the .ARM. sections.

Clang broken command line:
clang++-3.6 -lunwind -fPIC -mthumb -target armv7a-linux-gnueabihf repro.cpp 

GCC working command line:
g++ -mthumb -fPIC -march=armv7-a repro.cpp -lunwind

As far as I can tell the two above invocations should give similar output for
the two compilers, however, when built with Clang, after unwind PC and LR are
zero, where as when built with GCC they have their correct values, as verified
with GDB. It seems Clang is outputting incorrect unwinding information. Perhaps
meaningless, but the .ARM.extab. and .ARM.exidx. sections are considerably
smaller in the Clang build than the GCC build. 0x18 and 0x30 vs 0x3c and 0x38
bytes respectively.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20150716/55057b0d/attachment.html>


More information about the llvm-bugs mailing list