[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