Subject says it all really. Build and tested clean on x86_64-linux.
OK? Ed
testsuite/ 2014-11-02 Edward Smith-Rowland <3dw...@verizon.net> * g++.dg/cpp1y/feat-cxx11.C: Commentary and rearrangement of tests. * g++.dg/cpp1y/feat-cxx11-neg.C: Add aggregate NSDMI test. Commentary and rearrangement of tests. * g++.dg/cpp1y/feat-cxx14.C: Enable aggregate NSDMI test. Commentary and rearrangement of tests. * g++.dg/cpp1y/feat-cxx98-neg.C: Ditto * g++.dg/cpp1y/feat-cxx98.C: Commentary. c-family/ 2014-11-02 Edward Smith-Rowland <3dw...@verizon.net> * c-cppbuiltin.c: Define __cpp_aggregate_nsdmi.
Index: testsuite/g++.dg/cpp1y/feat-cxx11-neg.C =================================================================== --- testsuite/g++.dg/cpp1y/feat-cxx11-neg.C (revision 217006) +++ testsuite/g++.dg/cpp1y/feat-cxx11-neg.C (working copy) @@ -1,7 +1,7 @@ // { dg-do compile { target c++11_only } } // { dg-options "-pedantic-errors" } -// These *are* defined in C++14 onwards. +// C++14 features: #ifndef __cpp_binary_literals # error "__cpp_binary_literals" // { dg-error "error" } @@ -31,11 +31,19 @@ # error "__cpp_digit_separators" // { dg-error "error" } #endif +#ifndef __cpp_aggregate_nsdmi +# error "__cpp_aggregate_nsdmi" // { dg-error "error" } +#endif + +// Array TS features: + +#ifndef __cpp_runtime_arrays +# error "__cpp_runtime_arrays" // { dg-error "error" } +#endif + +// Attribute checks: + // Attribute [[deprecated]] is allowed in C++11 as an extension (with pedwarn). //#ifndef __cpp_attribute_deprecated //# error "__cpp_attribute_deprecated" //#endif - -#ifndef __cpp_runtime_arrays -# error "__cpp_runtime_arrays" // { dg-error "error" } -#endif Index: testsuite/g++.dg/cpp1y/feat-cxx11.C =================================================================== --- testsuite/g++.dg/cpp1y/feat-cxx11.C (revision 217006) +++ testsuite/g++.dg/cpp1y/feat-cxx11.C (working copy) @@ -1,6 +1,8 @@ // { dg-do compile } // { dg-options "-std=gnu++11" } +// C++11 features: + #ifndef __cpp_unicode_characters # error "__cpp_unicode_characters" #elif __cpp_unicode_characters != 200704 @@ -73,7 +75,8 @@ # error "__cpp_alias_templates != 200704" #endif -// These C++14 features are allowed in C++11 in non-ANSI modes. +// C++14 features allowed in C++11 in non-ANSI modes: + #ifndef __cpp_binary_literals # error "__cpp_binary_literals" #elif __cpp_binary_literals != 201304 @@ -80,6 +83,9 @@ # error "__cpp_binary_literals != 201304" #endif +// Attribute checks: + +// Attribute [[deprecated]] is allowed in C++11 as an extension (with pedwarn). #ifndef __cpp_attribute_deprecated # error "__cpp_attribute_deprecated" #elif __cpp_attribute_deprecated != 201309 Index: testsuite/g++.dg/cpp1y/feat-cxx14.C =================================================================== --- testsuite/g++.dg/cpp1y/feat-cxx14.C (revision 217006) +++ testsuite/g++.dg/cpp1y/feat-cxx14.C (working copy) @@ -1,7 +1,7 @@ // { dg-do compile { target c++14 } } // { dg-options "-I${srcdir}/g++.dg/cpp1y -I${srcdir}/g++.dg/cpp1y/testinc" } -// Begin C++11 tests. +// C++11 features: #ifndef __cpp_unicode_characters # error "__cpp_unicode_characters" @@ -75,7 +75,7 @@ # error "__cpp_alias_templates != 200704" #endif -// Begin C++14 tests. +// C++14 features: #ifndef __cpp_binary_literals # error "__cpp_binary_literals" @@ -114,15 +114,10 @@ # error "__cpp_return_type_deduction != 201304" #endif -#ifndef __cpp_runtime_arrays -# error "__cpp_runtime_arrays" -#elif __cpp_runtime_arrays != 201304 -# error "__cpp_runtime_arrays != 201304" -#endif - -// Aggregate initializers not in yet. -#ifdef __cpp_aggregate_nsdmi +#ifndef __cpp_aggregate_nsdmi # error "__cpp_aggregate_nsdmi" +#elif __cpp_aggregate_nsdmi != 201304 +# error "__cpp_aggregate_nsdmi != 201304" #endif #ifndef __cpp_variable_templates @@ -137,6 +132,21 @@ # error "__cpp_digit_separators != 201309" #endif +// Sized deallocation not in yet. +#ifdef __cpp_sized_deallocation +# error "__cpp_sized_deallocation" +#endif + +// Array TS features: + +#ifndef __cpp_runtime_arrays +# error "__cpp_runtime_arrays" +#elif __cpp_runtime_arrays != 201304 +# error "__cpp_runtime_arrays != 201304" +#endif + +// Attribute checks: + #ifndef __cpp_attribute_deprecated # error "__cpp_attribute_deprecated" #elif __cpp_attribute_deprecated != 201309 @@ -143,13 +153,8 @@ # error "__cpp_attribute_deprecated != 201309" #endif -// Sized deallocation not in yet. -#ifdef __cpp_sized_deallocation -# error "__cpp_sized_deallocation" -#endif +// Include checks: -// Begin include checks. - // Check for __has_include macro. #ifndef __has_include # error "__has_include" Index: testsuite/g++.dg/cpp1y/feat-cxx98-neg.C =================================================================== --- testsuite/g++.dg/cpp1y/feat-cxx98-neg.C (revision 217006) +++ testsuite/g++.dg/cpp1y/feat-cxx98-neg.C (working copy) @@ -1,6 +1,8 @@ // { dg-do compile { target c++98_only } } // { dg-options "-ansi" } +// C++11 features: + #ifndef __cpp_runtime_arrays # error "__cpp_runtime_arrays" // { dg-error "error" } #endif @@ -53,9 +55,9 @@ # error "__cpp_alias_templates" // { dg-error "error" } #endif -// C++14 +// C++14 features: -// C++98 gets binary literals. +// C++98 gets binary literals in non-ANSI modes. //#ifndef __cpp_binary_literals //# error "__cpp_binary_literals" //#endif @@ -76,10 +78,9 @@ # error "__cpp_return_type_deduction" // { dg-error "error" } #endif -// Aggregate initializers not in yet. -//#ifdef __cpp_aggregate_nsdmi -//# error "__cpp_aggregate_nsdmi" -//#endif +#ifndef __cpp_aggregate_nsdmi +# error "__cpp_aggregate_nsdmi" // { dg-error "error" } +#endif #ifndef __cpp_variable_templates # error "__cpp_variable_templates" // { dg-error "error" } @@ -89,11 +90,13 @@ # error "__cpp_digit_separators" // { dg-error "error" } #endif -#ifndef __cpp_attribute_deprecated -# error "__cpp_attribute_deprecated" // { dg-error "error" } -#endif - // Sized deallocation not in yet. //#ifdef __cpp_sized_deallocation //# error "__cpp_sized_deallocation" //#endif + +// Attribute checks: + +#ifndef __cpp_attribute_deprecated +# error "__cpp_attribute_deprecated" // { dg-error "error" } +#endif Index: testsuite/g++.dg/cpp1y/feat-cxx98.C =================================================================== --- testsuite/g++.dg/cpp1y/feat-cxx98.C (revision 217006) +++ testsuite/g++.dg/cpp1y/feat-cxx98.C (working copy) @@ -1,7 +1,8 @@ // { dg-do compile { target c++98_only } } // { dg-options "" } -// These C++14 features are allowed in C++98 in non-ANSI modes. +// C++14 features allowed in C++98 in non-ANSI modes: + #ifndef __cpp_binary_literals # error "__cpp_binary_literals" #elif __cpp_binary_literals != 201304 Index: c-family/c-cppbuiltin.c =================================================================== --- c-family/c-cppbuiltin.c (revision 217006) +++ c-family/c-cppbuiltin.c (working copy) @@ -841,7 +849,7 @@ //cpp_undef (pfile, "__cpp_constexpr"); //cpp_define (pfile, "__cpp_constexpr=201304"); cpp_define (pfile, "__cpp_decltype_auto=201304"); - //cpp_define (pfile, "__cpp_aggregate_nsdmi=201304"); + cpp_define (pfile, "__cpp_aggregate_nsdmi=201304"); cpp_define (pfile, "__cpp_variable_templates=201304"); cpp_define (pfile, "__cpp_digit_separators=201309"); //cpp_define (pfile, "__cpp_sized_deallocation=201309");