[LLVMbugs] [Bug 10148] New: llvm-ld aborts with "Aliasee not linked" on virtual destructors
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Fri Jun 17 00:17:48 PDT 2011
http://llvm.org/bugs/show_bug.cgi?id=10148
Summary: llvm-ld aborts with "Aliasee not linked" on virtual
destructors
Product: new-bugs
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: release blocker
Priority: P
Component: new bugs
AssignedTo: unassignedbugs at nondot.org
ReportedBy: ka5427-536 at online.de
CC: llvmbugs at cs.uiuc.edu
Created an attachment (id=6743)
--> (http://llvm.org/bugs/attachment.cgi?id=6743)
failing virtual destructor
I am working on a very large projects where llvm-ld aborts several 60 times
with the message "Aliasee not linked".
It seems that the issue has somehow todo with virtual destructors.
(see attachment example.cpp/Makefile)
class Base {
public:
virtual ~Base() = 0;
};
class Derived : public Base {
public:
virtual ~Derived();
};
Base::~Base() { }
Derived::~Derived() { }
int main() {
Derived d;
}
build output:
clang++ -pedantic -Wall -emit-llvm -c example.cpp
llvm-ld example.o -o example
llvm-ld: /home/eval/gnu/llvm/llvm/lib/Linker/LinkModules.cpp:675: bool
LinkAlias(llvm::Module*, const llvm::Module*, llvm::ValueToValueMapTy&,
std::string*): Assertion `VMI != Va
0 llvm-ld 0x0000000000c79d56
1 llvm-ld 0x0000000000c7a31c
2 libpthread.so.0 0x00002b2e484f5a80
3 libc.so.6 0x00002b2e490dfed5 gsignal + 53
4 libc.so.6 0x00002b2e490e13f3 abort + 387
5 libc.so.6 0x00002b2e490d8dc9 __assert_fail + 233
6 llvm-ld 0x0000000000830a37
7 llvm-ld 0x0000000000832ec2
llvm::Linker::LinkModules(llvm::Module*, llvm::Module*, std::string*) + 2014
8 llvm-ld 0x000000000082da03
llvm::Linker::LinkInModule(llvm::Module*, std::string*) + 41
9 llvm-ld 0x000000000082ce32
llvm::Linker::LinkInFile(llvm::sys::Path const&, bool&) + 1486
10 llvm-ld 0x000000000082d509
llvm::Linker::LinkInItems(std::vector<std::pair<std::string, bool>,
std::allocator<std::pair<std::string, bool> > > const&, std::vector<std:
11 llvm-ld 0x0000000000806988 main + 1364
12 libc.so.6 0x00002b2e490cc1a6 __libc_start_main + 230
13 llvm-ld 0x00000000007ff609
Stack dump:
0. Program arguments: llvm-ld example.o -o example
gmake: *** [libexample.so] Aborted
more details:
os is debian lenny 64bit
llvm/clang++ is version 3.0 (trunk 133240)
happens with virtual destructors only. Other virtual methods seems to work
OK.
this is OK: g++ -Wall -pedantic -o example example.cpp
this is OK: clang++ -Wall -pedantic -o example example.cpp
the llvm-nm command reports a symbol of unknown type, e.g.:
llvm-nm example.o | grep ' ? '
' ? _ZN7DerivedD1Ev'
echo _ZN7DerivedD1Ev | c++filt
'Derived::~Derived()'
--
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