135911ce76bed5fa64dcc368cbd81f6ec7b71aa75Sebastian Redl// RUN: %clang_cc1 -fsyntax-only -verify %s 28e8fb3be5bd78f0564444eca02b404566a5f3b5dAndy Gibbs// expected-no-diagnostics 335911ce76bed5fa64dcc368cbd81f6ec7b71aa75Sebastian Redl 435911ce76bed5fa64dcc368cbd81f6ec7b71aa75Sebastian Redlstruct meta { 535911ce76bed5fa64dcc368cbd81f6ec7b71aa75Sebastian Redl template<typename U> 635911ce76bed5fa64dcc368cbd81f6ec7b71aa75Sebastian Redl struct apply { 735911ce76bed5fa64dcc368cbd81f6ec7b71aa75Sebastian Redl typedef U* type; 835911ce76bed5fa64dcc368cbd81f6ec7b71aa75Sebastian Redl }; 935911ce76bed5fa64dcc368cbd81f6ec7b71aa75Sebastian Redl}; 1035911ce76bed5fa64dcc368cbd81f6ec7b71aa75Sebastian Redl 1135911ce76bed5fa64dcc368cbd81f6ec7b71aa75Sebastian Redltemplate<typename T, typename U> 1235911ce76bed5fa64dcc368cbd81f6ec7b71aa75Sebastian Redlvoid f(typename T::template apply<U>::type); 1335911ce76bed5fa64dcc368cbd81f6ec7b71aa75Sebastian Redl 1435911ce76bed5fa64dcc368cbd81f6ec7b71aa75Sebastian Redlvoid test_f(int *ip) { 1535911ce76bed5fa64dcc368cbd81f6ec7b71aa75Sebastian Redl f<meta, int>(ip); 1635911ce76bed5fa64dcc368cbd81f6ec7b71aa75Sebastian Redl} 17