// { dg-additional-options "-fmodule-header -fdump-lang-module-blocks" } // { dg-module-cmi {} } template struct TPL_1 { using type = T;}; template struct TPL_2 { using type = int;}; template using TPL_3 = typename TPL_2::type; template auto Foo (const A& arg) -> TPL_3::type> {return 3;} template auto Bar (const A& arg) -> TPL_3::type> {return 3;} // { dg-final { scan-lang-dump { Cluster members:\n \[0\]=decl definition '::template Foo'\n \[1\]=specialization declaration '::TPL_1<#null#>'\n \[2\]=specialization declaration '::TPL_3<::TPL_1<#null#>::type>'\n \[3\]=specialization declaration '::TPL_2<::TPL_1<#null#>::type>'\n \[4\]=binding '::Foo'\n} module } }