[LLVMbugs] [Bug 7387] New: No representation for canonical template template parameters in TemplateName

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Tue Jun 15 16:36:47 PDT 2010


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

           Summary: No representation for canonical template template
                    parameters in TemplateName
           Product: clang
           Version: unspecified
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: chandlerc at gmail.com
                CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com


This causes us to not think match equivalent template names that aren't
actually identical:


% cat t.cc
template <typename T> struct X {};

template <typename T1> struct S {
  template <template <typename> class TC> void foo(const TC<T1>& arg);
};

template <typename T1> template <template <typename> class TC>
void S<T1>::foo(const TC<T1>& arg) {}

void test(const X<int>& x) {
  S<int> s;
  s.foo(x);
}

% clang -fsyntax-only t.cc
t.cc:8:13: error: out-of-line definition of 'foo' does not match any
declaration in 'S<T1>'
void S<T1>::foo(const TC<T1>& arg) {}
     ~~~~~~~^
1 error generated.

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