[LLVMbugs] [Bug 14597] New: Hang, 100% CPU usage on (ab)use of ".indirect_symbol" directive
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Thu Dec 13 11:57:03 PST 2012
http://llvm.org/bugs/show_bug.cgi?id=14597
Bug #: 14597
Summary: Hang, 100% CPU usage on (ab)use of ".indirect_symbol"
directive
Product: new-bugs
Version: trunk
Platform: Macintosh
OS/Version: MacOS X
Status: NEW
Severity: normal
Priority: P
Component: new bugs
AssignedTo: unassignedbugs at nondot.org
ReportedBy: arthur.j.odwyer at gmail.com
CC: llvmbugs at cs.uiuc.edu
Classification: Unclassified
Created attachment 9696
--> http://llvm.org/bugs/attachment.cgi?id=9696
output of "clang -c -v test.s", up to the point where it hangs
cat >test.s <<EOF
_x:
.indirect_symbol _y
EOF
clang -c test.s
I'm seeing LLVM hang in an infinite loop, consuming 100% CPU, when run on the
above trivial program (on a 64-bit x86 MacBook Pro). This happens with either
-m32 or -m64.
(gdb) bt
#0 0x0000000101f55460 in std::vector<llvm::MCCFIInstruction,
std::allocator<llvm::MCCFIInstruction> >::operator= ()
#1 0x0000000101f3718e in std::vector<llvm::ELFRelocationEntry,
std::allocator<llvm::ELFRelocationEntry> >::_M_insert_aux ()
#2 0x0000000101f47759 in std::vector<llvm::IndirectSymbolData,
std::allocator<llvm::IndirectSymbolData> >::_M_insert_aux ()
#3 0x0000000101c0abb0 in std::sort_heap<llvm::LandingPadInfo const**, bool
(*)(llvm::LandingPadInfo const*, llvm::LandingPadInfo const*)> ()
#4 0x0000000100d0699a in std::_Rb_tree<std::string, std::string,
std::_Identity<std::string>, std::less<std::string>,
std::allocator<std::string> >::_M_erase ()
#5 0x0000000100d07b34 in std::vector<std::string, std::allocator<std::string>
>::_M_insert_aux ()
#6 0x00007fff90dad7e1 in start ()
FWIW, this was reduced from the following probably-horrible-abuse of
".indirect_symbol". It's off-topic for this bug report, but if anyone can
comment on whether this code is expected to work, feel free to email me
privately.
cat >original.s <<EOF
.section __TEXT,__text,regular,pure_instructions
.globl _get_address_of_x
.align 4, 0x90
_get_address_of_x: ## @get_address_of_x
## movl $_x, %eax
.byte 0xb8
.indirect_symbol _x
.long 0
ret
EOF
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list