dr10xx.cpp revision ef8225444452a1486bd721f3285301fe84643b00
1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// RUN: %clang_cc1 -std=c++98 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// RUN: %clang_cc1 -std=c++11 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// RUN: %clang_cc1 -std=c++1y %s -verify -fexceptions -fcxx-exceptions -pedantic-errors 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// expected-no-diagnostics 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace std { 85e3f23d412006dc4db4e659864679f29341e113fTorne (Richard Coles) __extension__ typedef __SIZE_TYPE__ size_t; 9868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) template<typename T> struct initializer_list { 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const T *p; size_t n; 125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) initializer_list(const T *p, size_t n); 135c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu }; 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace dr1070 { // dr1070: 3.5 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if __cplusplus >= 201103L 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct A { 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) A(std::initializer_list<int>); 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct B { 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int i; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) A a; 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) B b = {1}; 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct C { 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::initializer_list<int> a; 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) B b; 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::initializer_list<double> c; 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci C c = {}; 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci