template <typename T> struct S { }; // S<int> v; template struct S<int>; Uncommenting the line above the ClassTemplateSpecializationDecl related to the last line disappears from declarations available inside TranslationUnitDecl. I don't think it's expected, right?