diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-01-25 04:22:16 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-01-25 04:22:16 +0000 |
commit | cf656385ea2da9c7c29eff9c2aa7a89d81fb5703 (patch) | |
tree | d672aa132f2903b334fa317c7d22cf276e58187d /clang/test/SemaCXX/cxx0x-class.cpp | |
parent | 44f750a3e58eb6ae84a4476aa4befc0bb406dffa (diff) | |
download | bcm5719-llvm-cf656385ea2da9c7c29eff9c2aa7a89d81fb5703.tar.gz bcm5719-llvm-cf656385ea2da9c7c29eff9c2aa7a89d81fb5703.zip |
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
Diffstat (limited to 'clang/test/SemaCXX/cxx0x-class.cpp')
-rw-r--r-- | clang/test/SemaCXX/cxx0x-class.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/clang/test/SemaCXX/cxx0x-class.cpp b/clang/test/SemaCXX/cxx0x-class.cpp index 41b0a5ce958..5532bcea3eb 100644 --- a/clang/test/SemaCXX/cxx0x-class.cpp +++ b/clang/test/SemaCXX/cxx0x-class.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s +// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 -Wno-error=static-float-init %s int vs = 0; @@ -17,11 +17,11 @@ public: }; namespace rdar8367341 { - float foo(); // expected-note {{here}} + float foo(); // expected-note 2{{here}} struct A { - static const float x = 5.0f; // expected-warning {{GNU extension}} expected-note {{use 'constexpr' specifier to silence this warning}} - static const float y = foo(); // expected-warning {{GNU extension}} expected-note {{use 'constexpr' specifier to silence this warning}} expected-error {{in-class initializer for static data member is not a constant expression}} + static const float x = 5.0f; // expected-warning {{requires 'constexpr'}} + static const float y = foo(); // expected-warning {{requires 'constexpr'}} expected-error {{constexpr variable 'y' must be initialized by a constant expression}} expected-note {{non-constexpr function 'foo'}} static constexpr float x2 = 5.0f; static constexpr float y2 = foo(); // expected-error {{must be initialized by a constant expression}} expected-note {{non-constexpr function 'foo'}} }; |