1// RUN: %clang_cc1 -verify %s -std=c++98 -DEXT
2// RUN: %clang_cc1 -verify %s -std=c++98 -Wno-gnu -DNONE
3// RUN: %clang_cc1 -verify %s -std=c++98 -Wno-static-float-init -DNONE
4// RUN: %clang_cc1 -verify %s -std=c++98 -Wno-gnu-static-float-init -DNONE
5// RUN: %clang_cc1 -verify %s -std=c++11 -DERR
6// RUN: %clang_cc1 -verify %s -std=c++11 -Wno-gnu -DERR
7// RUN: %clang_cc1 -verify %s -std=c++11 -Wno-static-float-init -DNONE
8// RUN: %clang_cc1 -verify %s -std=c++11 -Wno-gnu-static-float-init -DERR
9
10#if NONE
11// expected-no-diagnostics
12#elif ERR
13// expected-error@20 {{in-class initializer for static data member of type 'const double' requires 'constexpr' specifier}}
14// expected-note@20 {{add 'constexpr'}}
15#elif EXT
16// expected-warning@20 {{in-class initializer for static data member of type 'const double' is a GNU extension}}
17#endif
18
19struct X {
20  static const double x = 0.0;
21};
22