blob: 54f95db04564b4d84e6d7bf52f75a1cb68c8c41f [file] [log] [blame]
// { dg-additional-options "-fmodule-header -fdump-lang-module-blocks" }
// { dg-module-cmi {} }
template<typename T> struct TPL_1 { using type = T;};
template<typename U> struct TPL_2 { using type = int;};
template<typename V> using TPL_3 = typename TPL_2<V>::type;
template<typename A>
auto Foo (const A& arg)
-> TPL_3<typename TPL_1<decltype(arg)>::type>
{return 3;}
template<typename A>
auto Bar (const A& arg)
-> TPL_3<typename TPL_1<decltype(arg)>::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 } }