Neither the before code nor the after code looks right...
The outermost lexical level (and possibly others in the future) can have
multiple template parameter lists, and you should use
`getNumTemplateParameterLists`/`getTemplateParameterList` on each level to add
all of them (these exist on `DeclaratorDecl` for `FunctionDecls` and on
`TagDecl` for the other cases). For instance:
template<typename A> struct S {
template<typename B> struct T;
};
template<typename A> template<typename B> struct S<A>::T {
template<typename C, typename D> struct U;
template<typename C> struct U<C, C> {
template<typename E> void f() { /* ... */ }
};
};
http://reviews.llvm.org/D3555
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits