16f4596cfb70ec706dd2da38db1be3663c214ff7aDouglas Gregor// RUN: %clang_cc1 -fsyntax-only -verify %s
26f4596cfb70ec706dd2da38db1be3663c214ff7aDouglas Gregor
333deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl// Test that a very basic variation of generalized initializer returns (that
45b38a0f98e4420dae1bd3e13959bc207c97a9e98Sebastian Redl// required for libstdc++ 4.5) is supported in C++98.
56f4596cfb70ec706dd2da38db1be3663c214ff7aDouglas Gregor
66f4596cfb70ec706dd2da38db1be3663c214ff7aDouglas Gregorint test0(int i) {
70e2c34f92f00628d48968dfea096d36381f494cbStephen Hines  return { i }; // expected-warning{{generalized initializer lists are a C++11 extension}} expected-warning {{scalar}}
86f4596cfb70ec706dd2da38db1be3663c214ff7aDouglas Gregor}
96f4596cfb70ec706dd2da38db1be3663c214ff7aDouglas Gregor
106f4596cfb70ec706dd2da38db1be3663c214ff7aDouglas Gregortemplate<typename T, typename U>
116f4596cfb70ec706dd2da38db1be3663c214ff7aDouglas GregorT test1(U u) {
1233deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl  return { u }; // expected-warning{{generalized initializer lists are a C++11 extension}}
136f4596cfb70ec706dd2da38db1be3663c214ff7aDouglas Gregor}
146f4596cfb70ec706dd2da38db1be3663c214ff7aDouglas Gregor
156f4596cfb70ec706dd2da38db1be3663c214ff7aDouglas Gregortemplate int test1(char);
166f4596cfb70ec706dd2da38db1be3663c214ff7aDouglas Gregortemplate long test1(int);
17