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