Instantiating the template doesn't help. In fact my test case is already instantiating the template with Bar<int> which I presume is why I see two entries in the AST for Bar, one with T=int and one general definition. http://llvm-reviews.chandlerc.com/D136