1762bb9d0ad20320b9f97a841dce57ba5e8e48b07Richard Smith// RUN: %clang_cc1 -fsyntax-only -pedantic -verify -std=c++11 %s
23e4c6c4c79a03f5cb0c4671d7c282d623c6dc35eRichard Smith
33e4c6c4c79a03f5cb0c4671d7c282d623c6dc35eRichard Smithtemplate<typename T> using U = int &;
4898574e7496ba8fd76290079d3a9d06954992734Douglas Gregor
5898574e7496ba8fd76290079d3a9d06954992734Douglas Gregortemplate<typename T, int Size> void f() {
6898574e7496ba8fd76290079d3a9d06954992734Douglas Gregor  T x1;
7898574e7496ba8fd76290079d3a9d06954992734Douglas Gregor  T* x2;
8898574e7496ba8fd76290079d3a9d06954992734Douglas Gregor  T& x3; // expected-error{{declaration of reference variable 'x3' requires an initializer}}
96e8247556807ecaaac470852222762db998a05b2Sebastian Redl  T x4[]; // expected-error{{needs an explicit size or an initializer}}
10898574e7496ba8fd76290079d3a9d06954992734Douglas Gregor  T x5[Size];
11898574e7496ba8fd76290079d3a9d06954992734Douglas Gregor  int x6[Size];
123e4c6c4c79a03f5cb0c4671d7c282d623c6dc35eRichard Smith  U<T> x7; // expected-error{{declaration of reference variable 'x7' requires an initializer}}
13898574e7496ba8fd76290079d3a9d06954992734Douglas Gregor}
14