[LLVMbugs] [Bug 11677] New: lto lazy-loading produces invalid ir

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu Dec 29 20:20:20 PST 2011


http://llvm.org/bugs/show_bug.cgi?id=11677

             Bug #: 11677
           Summary: lto lazy-loading produces invalid ir
           Product: libraries
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Linker
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: nicholas at mxc.ca
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified


This .ll file:

@table = constant i8* blockaddress(@func, %bb)
define void @func() {
  unreachable
bb:
  unreachable
}

breaks in LTO:

$ ld --plugin LLVMgold.so x.bc -shared -o x.so
invalid linkage type for global declaration
i8* @0
Broken module found, compilation aborted!
Stack dump:
0.    Running pass 'Function Pass Manager' on module 'ld-temp.o'.

What's @0? Taking a look with gdb, it's the not-materialized blockaddress
constant:

Breakpoint 2, LTOCodeGenerator::addModule (this=0x6b6ff0, mod=0x702d80,
    errMsg=...) at LTOCodeGenerator.cpp:93
93        bool ret = _linker.LinkInModule(mod->getLLVVMModule(), &errMsg);
(gdb) call mod->getLLVVMModule()->dump()

@table = constant i8* @0
@0 = internal global i8

; Materializable
declare void @func()
(gdb)

Whoops!

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