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: [email protected]
        ReportedBy: [email protected]
                CC: [email protected], [email protected]


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.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to