[LLVMbugs] [Bug 6583] New: Missing symbol in binary causes undefined symbol error during linking...

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu Mar 11 09:09:17 PST 2010


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

           Summary: Missing symbol in binary causes undefined symbol error
                    during linking...
           Product: clang
           Version: trunk
          Platform: Macintosh
        OS/Version: MacOS X
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: Fons.Rademakers at cern.ch
                CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com


Created an attachment (id=4482)
 --> (http://llvm.org/bugs/attachment.cgi?id=4482)
Source file exhibiting the problem

To see this behaviour do:

$ clang++ -c aap.cxx
$ nm aap.o |c++filt |grep G__srcreader

0000000000008006 S G__srcreader<G__fstream>::G__srcreader()
000000000000fb60 S __ZN12G__srcreaderI10G__fstreamEC1Ev.eh
000000000000ca22 S G__srcreader<G__fstream>::G__srcreader()
0000000000013750 S __ZN12G__srcreaderI10G__fstreamEC2Ev.eh
                 U vtable for G__srcreader<G__fstream>

The result with g++ is:

$ g++ -c aap.cxx
$ nm aap.o |c++filt |grep G__srcreader

0000000000009244 S G__srcreader<G__fstream>::fgetstream(std::basic_string<char,
std::char_traits<char>, std::allocator<char> >&, std::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, int)
000000000000eef8 S __ZN12G__srcreaderI10G__fstreamE10fgetstreamERSsRKSsi.eh
00000000000090e4 S
G__srcreader<G__fstream>::fgetstream_(std::basic_string<char,
std::char_traits<char>, std::allocator<char> >&, std::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, int)
000000000000ee18 S __ZN12G__srcreaderI10G__fstreamE11fgetstream_ERSsRKSsi.eh
0000000000008de6 S G__srcreader<G__fstream>::fignoreline()
000000000000ed00 S __ZN12G__srcreaderI10G__fstreamE11fignorelineEv.eh
00000000000094d6 S G__srcreader<G__fstream>::fpp_command(int)
000000000000f010 S __ZN12G__srcreaderI10G__fstreamE11fpp_commandEi.eh
000000000000927e S
G__srcreader<G__fstream>::fappendtoken(std::basic_string<char,
std::char_traits<char>, std::allocator<char> >&, int, std::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&)
000000000000ef30 S __ZN12G__srcreaderI10G__fstreamE12fappendtokenERSsiRKSs.eh
0000000000006a4e S G__srcreader<G__fstream>::fskipcomment(int)
000000000000d4e8 S __ZN12G__srcreaderI10G__fstreamE12fskipcommentEi.eh
0000000000008dd2 S G__srcreader<G__fstream>::skipCcomment()
000000000000ecc8 S __ZN12G__srcreaderI10G__fstreamE12skipCcommentEv.eh
0000000000009332 S
G__srcreader<G__fstream>::fgetquotation(std::basic_string<char,
std::char_traits<char>, std::allocator<char> >&, int, int)
000000000000efa0 S __ZN12G__srcreaderI10G__fstreamE13fgetquotationERSsii.eh
0000000000009194 S
G__srcreader<G__fstream>::fignorestream(std::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, int)
000000000000ee88 S __ZN12G__srcreaderI10G__fstreamE13fignorestreamERKSsi.eh
0000000000006a10 S G__srcreader<G__fstream>::fgetc_gettoken()
000000000000d4b0 S __ZN12G__srcreaderI10G__fstreamE14fgetc_gettokenEv.eh
0000000000009034 S
G__srcreader<G__fstream>::fignorestream_(std::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, int)
000000000000eda8 S __ZN12G__srcreaderI10G__fstreamE14fignorestream_ERKSsi.eh
0000000000008dfa S
G__srcreader<G__fstream>::fgetstream_core(std::basic_string<char,
std::char_traits<char>, std::allocator<char> >&, std::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, int, int, int)
000000000000ed38 S
__ZN12G__srcreaderI10G__fstreamE15fgetstream_coreERSsRKSsiii.eh
000000000000920a S
G__srcreader<G__fstream>::fgetstream_template(std::basic_string<char,
std::char_traits<char>, std::allocator<char> >&, std::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, int)
000000000000eec0 S
__ZN12G__srcreaderI10G__fstreamE19fgetstream_templateERSsRKSsi.eh
00000000000090aa S
G__srcreader<G__fstream>::fgetstream_template_(std::basic_string<char,
std::char_traits<char>, std::allocator<char> >&, std::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, int)
000000000000ede0 S
__ZN12G__srcreaderI10G__fstreamE20fgetstream_template_ERSsRKSsi.eh
000000000000911e S
G__srcreader<G__fstream>::fignorestream_template(std::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, int)
000000000000ee50 S
__ZN12G__srcreaderI10G__fstreamE22fignorestream_templateERKSsi.eh
0000000000008fbe S
G__srcreader<G__fstream>::fignorestream_template_(std::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, int)
000000000000ed70 S
__ZN12G__srcreaderI10G__fstreamE23fignorestream_template_ERKSsi.eh
00000000000069ec S G__srcreader<G__fstream>::Init(char const*)
000000000000d478 S __ZN12G__srcreaderI10G__fstreamE4InitEPKc.eh
00000000000099b8 S G__srcreader<G__fstream>::Init(G__input_file&)
000000000000f198 S __ZN12G__srcreaderI10G__fstreamE4InitER13G__input_file.eh
000000000000999c S G__srcreader<G__fstream>::fgetc()
000000000000f160 S __ZN12G__srcreaderI10G__fstreamE5fgetcEv.eh
0000000000006b34 S G__srcreader<G__fstream>::getpos()
000000000000d520 S __ZN12G__srcreaderI10G__fstreamE6getposEv.eh
0000000000008d40 S G__srcreader<G__fstream>::setpos(long long)
000000000000eb40 S __ZN12G__srcreaderI10G__fstreamE6setposEx.eh
0000000000008db2 S G__srcreader<G__fstream>::putback()
000000000000ec90 S __ZN12G__srcreaderI10G__fstreamE7putbackEv.eh
0000000000006b50 S G__srcreader<G__fstream>::setspos(unsigned long)
000000000000d558 S __ZN12G__srcreaderI10G__fstreamE7setsposEm.eh
0000000000008d64 S G__srcreader<G__fstream>::storepos(int)
000000000000ebb0 S __ZN12G__srcreaderI10G__fstreamE8storeposEi.eh
000000000000931e S G__srcreader<G__fstream>::fgetspace()
000000000000ef68 S __ZN12G__srcreaderI10G__fstreamE9fgetspaceEv.eh
0000000000009700 S G__srcreader<G__fstream>::fgettoken(std::basic_string<char,
std::char_traits<char>, std::allocator<char> >&, std::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&)
000000000000f0f0 S __ZN12G__srcreaderI10G__fstreamE9fgettokenERSsRKSs.eh
0000000000008cfa S G__srcreader<G__fstream>::rewindpos()
000000000000ead0 S __ZN12G__srcreaderI10G__fstreamE9rewindposEv.eh
0000000000005758 S G__srcreader<G__fstream>::G__srcreader()
000000000000b388 S __ZN12G__srcreaderI10G__fstreamEC1Ev.eh
00000000000075fc S G__srcreader<G__fstream>::~G__srcreader()
000000000000dec8 S __ZN12G__srcreaderI10G__fstreamED0Ev.eh
000000000000762e S G__srcreader<G__fstream>::~G__srcreader()
000000000000df00 S __ZN12G__srcreaderI10G__fstreamED1Ev.eh
000000000000ac50 S typeinfo for G__srcreader<G__fstream>
000000000000ada6 S typeinfo name for G__srcreader<G__fstream>
000000000000ab60 S vtable for G__srcreader<G__fstream>

For clang++ this symbol is undefined:

                 U vtable for G__srcreader<G__fstream>

Cheers, Fons.

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