1 // RUN: clang-cc -fsyntax-only -verify %s
2 
3 void f();
4 
5 // FIXME: would like to refer to the first function parameter in these test,
6 // but that won't work (yet).
7 
8 // Test typeof(expr) canonicalization
9 template<typename T, T N>
10 void f0(T x, __typeof__(f(N)) y) { } // expected-note{{previous}}
11 
12 template<typename T, T N>
13 void f0(T x, __typeof__((f)(N)) y) { }
14 
15 template<typename U, U M>
16 void f0(U u, __typeof__(f(M))) { } // expected-error{{redefinition}}