// RUN: %clang_cc1 -fsyntax-only -verify %s -std=c++11 template struct only { only(T); template only(U) = delete; // expected-note {{here}} }; template void f(T ...t) { auto x(t...); // expected-error {{is empty}} expected-error {{contains multiple expressions}} only check = x; } void g() { f(); // expected-note {{here}} f(0); f(0, 1); // expected-note {{here}} } template bool h(T t) { auto a = t; decltype(a) b; a = a + b; auto p = new auto(t); only test = p; // expected-error {{conversion function from 'char *' to 'only'}} return p; } bool b = h('x'); // expected-note {{here}} // PR 9276 - Make sure we check auto types deduce the same // in the case of a dependent initializer namespace PR9276 { template void f() { auto i = T(), j = 0; // expected-error {{deduced as 'long' in declaration of 'i' and deduced as 'int' in declaration of 'j'}} } void g() { f(); // expected-note {{here}} f(); } } namespace NoRepeatedDiagnostic { template void f() { auto a = 0, b = 0.0, c = T(); // expected-error {{deduced as 'int' in declaration of 'a' and deduced as 'double' in declaration of 'b'}} } // We've already diagnosed an issue. No extra diagnostics is needed for these. template void f(); template void f(); template void f(); }