[LLVMbugs] [Bug 8386] New: template default parameter type of function default argument causes missing symbol

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Oct 15 06:36:04 PDT 2010


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

           Summary: template default parameter type of function default
                    argument causes missing symbol
           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: Axel.Naumann at cern.ch
                CC: llvmbugs at cs.uiuc.edu


$ cat t.cxx
#include <vector>
void Invoke(const std::vector<void*>& = std::vector<void*>());
void f() { Invoke(); }

$ clang++ -O2 -c t.cxx && nm t.o | grep __ZNSaIPvEC1Ev
                 U __ZNSaIPvEC1Ev

whereas e.g.:

$ g++ -O2 -c t.cxx && nm t.o | grep __ZNSaIPvEC1Ev

I'm pretty sure that g++ is correct here. This behavior of clang++ results in
an undefined symbol __ZNSaIPvEC1Ev when loading the library containing t.o.

Cheers, Axel.

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