[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