1 // RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify -Wsystem-headers %s
2 
3 // libstdc++4.6 in debug mode has explicit default constructors.
4 // stlport has this for all containers.
5 #ifdef BE_THE_HEADER
6 #pragma clang system_header
7 namespace std {
8 namespace __debug {
9 template <class T>
10 class vector {
11 public:
12   explicit vector() {} // expected-warning 2 {{should not be explicit}}
13 };
14 }
15 }
16 #else
17 
18 #define BE_THE_HEADER
19 #include __FILE__
20 
21 struct { int a, b; std::__debug::vector<int> c; } e[] = { {1, 1} }; // expected-note{{used in initialization here}}
22 // expected-warning@+1 {{expression with side effects has no effect in an unevaluated context}}
23 decltype(new std::__debug::vector<int>[1]{}) x; // expected-note{{used in initialization here}}
24 #endif
25