Sync 'in class initialization of static const double' extension up with GCC,
and split it out of -Wgnu into its own warning flag.
* In C++11, this is now a hard error (GCC has no extension here in C++11 mode).
The error can be disabled with -Wno-static-float-init, and has a fixit to
add 'constexpr'.
* In C++98, this is still an ExtWarn, but is now controlled by
-Wstatic-float-init as well as -Wgnu.
llvm-svn: 173414
diff --git a/clang/test/CXX/class/class.static/class.static.data/p3.cpp b/clang/test/CXX/class/class.static/class.static.data/p3.cpp
index 117997e..0d104e0 100644
--- a/clang/test/CXX/class/class.static/class.static.data/p3.cpp
+++ b/clang/test/CXX/class/class.static/class.static.data/p3.cpp
@@ -13,7 +13,7 @@
static const int d2 = 0;
static constexpr double e = 0.0; // ok
- static const double f = 0.0; // expected-warning {{extension}} expected-note {{use 'constexpr' specifier}}
+ static const double f = 0.0; // expected-error {{requires 'constexpr' specifier}}
static char *const g = 0; // expected-error {{requires 'constexpr' specifier}}
static const NonLit h = NonLit(); // expected-error {{must be initialized out of line}}
};
diff --git a/clang/test/CXX/class/class.union/p2-0x.cpp b/clang/test/CXX/class/class.union/p2-0x.cpp
index b5c4109..19a3ea2 100644
--- a/clang/test/CXX/class/class.union/p2-0x.cpp
+++ b/clang/test/CXX/class/class.union/p2-0x.cpp
@@ -7,7 +7,7 @@
static const int k2 = k1;
static int k3 = k2; // expected-error {{non-const static data member must be initialized out of line}}
static constexpr double k4 = k2;
- static const double k5 = k4; // expected-warning {{GNU extension}} expected-note {{use 'constexpr'}}
+ static const double k5 = k4; // expected-error {{requires 'constexpr' specifier}}
int n[k1 + 3];
};