|  | // RUN: %clang_cc1 -verify %s -std=c++98 -DEXT | 
|  | // RUN: %clang_cc1 -verify %s -std=c++98 -Wno-gnu -DNONE | 
|  | // RUN: %clang_cc1 -verify %s -std=c++98 -Wno-static-float-init -DNONE | 
|  | // RUN: %clang_cc1 -verify %s -std=c++98 -Wno-gnu-static-float-init -DNONE | 
|  | // RUN: %clang_cc1 -verify %s -std=c++11 -DERR | 
|  | // RUN: %clang_cc1 -verify %s -std=c++11 -Wno-gnu -DERR | 
|  | // RUN: %clang_cc1 -verify %s -std=c++11 -Wno-static-float-init -DNONE | 
|  | // RUN: %clang_cc1 -verify %s -std=c++11 -Wno-gnu-static-float-init -DERR | 
|  |  | 
|  | #if NONE | 
|  | // expected-no-diagnostics | 
|  | #elif ERR | 
|  | // expected-error@20 {{in-class initializer for static data member of type 'const double' requires 'constexpr' specifier}} | 
|  | // expected-note@20 {{add 'constexpr'}} | 
|  | #elif EXT | 
|  | // expected-warning@20 {{in-class initializer for static data member of type 'const double' is a GNU extension}} | 
|  | #endif | 
|  |  | 
|  | struct X { | 
|  | static const double x = 0.0; | 
|  | }; |