diff --git a/clang/test/AST/ast-dump-template-decls.cpp b/clang/test/AST/ast-dump-template-decls.cpp --- a/clang/test/AST/ast-dump-template-decls.cpp +++ b/clang/test/AST/ast-dump-template-decls.cpp @@ -108,3 +108,22 @@ // CHECK: FunctionTemplateDecl 0x{{[^ ]*}} parent 0x{{[^ ]*}} prev 0x{{[^ ]*}} col:13 f // CHECK-NEXT: TemplateTypeParmDecl 0x{{[^ ]*}} col:20 typename depth 1 index 0 Uy void V::f() {} + +namespace PR55886 { +template struct C { + template using type1 = U(T); +}; +using type2 = typename C::type1; +// CHECK: TypeAliasDecl 0x{{[^ ]*}} col:7 type2 'typename C::type1':'void (int)' +// CHECK-NEXT: ElaboratedType 0x{{[^ ]*}} 'typename C::type1' sugar +// CHECK-NEXT: TemplateSpecializationType 0x{{[^ ]*}} 'type1' sugar alias type1 +// CHECK-NEXT: TemplateArgument type 'void' +// CHECK-NEXT: BuiltinType 0x{{[^ ]*}} 'void' +// CHECK-NEXT: FunctionProtoType 0x{{[^ ]*}} 'void (int)' cdecl +// CHECK-NEXT: SubstTemplateTypeParmType 0x{{[^ ]*}} 'void' sugar +// CHECK-NEXT: TemplateTypeParmType 0x{{[^ ]*}} 'U' dependent depth 0 index 0 +// CHECK-NEXT: TemplateTypeParm 0x{{[^ ]*}} 'U' +// CHECK-NEXT: BuiltinType 0x{{[^ ]*}} 'void' +// CHECK-NEXT: SubstTemplateTypeParmType 0x{{[^ ]*}} 'int' sugar +// CHECK-NEXT: TemplateTypeParmType 0x{{[^ ]*}} 'T' dependent depth 0 index 0 +} // namespace PR55886