blob: b18fcfabad4ac504be46add2944b050f83520f4c [file] [log] [blame]
// { dg-do compile }
// { dg-options "-std=gnu++11" }
// C++98 features:
#ifndef __cpp_rtti
# error "__cpp_rtti"
#elif __cpp_rtti != 199711
# error "__cpp_rtti != 199711"
#endif
#ifndef __cpp_exceptions
# error "__cpp_exceptions"
#elif __cpp_exceptions != 199711
# error "__cpp_exceptions != 199711"
#endif
// C++11 features:
#ifndef __cpp_unicode_characters
# error "__cpp_unicode_characters"
#elif __cpp_unicode_characters != 200704
# error "__cpp_unicode_characters != 200704"
#endif
#ifndef __cpp_raw_strings
# error "__cpp_raw_strings"
#elif __cpp_raw_strings != 200710
# error "__cpp_raw_strings != 200710"
#endif
#ifndef __cpp_unicode_literals
# error "__cpp_unicode_literals"
#elif __cpp_unicode_literals != 200710
# error "__cpp_unicode_literals != 200710"
#endif
#ifndef __cpp_user_defined_literals
# error "__cpp_user_defined_literals"
#elif __cpp_user_defined_literals != 200809
# error "__cpp_user_defined_literals != 200809"
#endif
#ifndef __cpp_lambdas
# error "__cpp_lambdas"
#elif __cpp_lambdas != 200907
# error "__cpp_lambdas != 200907"
#endif
#ifndef __cpp_constexpr
# error "__cpp_constexpr"
#elif __cpp_constexpr != 200704
# error "__cpp_constexpr != 200704"
#endif
#ifndef __cpp_range_based_for
# error "__cpp_range_based_for"
#elif __cpp_range_based_for < 200907
# error "__cpp_range_based_for < 200907"
#endif
#ifndef __cpp_static_assert
# error "__cpp_static_assert"
#elif __cpp_static_assert != 200410
# error "__cpp_static_assert != 200410"
#endif
#ifndef __cpp_decltype
# error "__cpp_decltype"
#elif __cpp_decltype != 200707
# error "__cpp_decltype != 200707"
#endif
#ifndef __cpp_attributes
# error "__cpp_attributes"
#elif __cpp_attributes != 200809
# error "__cpp_attributes != 200809"
#endif
#ifndef __cpp_rvalue_references
# error "__cpp_rvalue_references"
#elif __cpp_rvalue_references != 200610
# error "__cpp_rvalue_references != 200610"
#endif
#ifndef __cpp_variadic_templates
# error "__cpp_variadic_templates"
#elif __cpp_variadic_templates != 200704
# error "__cpp_variadic_templates != 200704"
#endif
#ifndef __cpp_initializer_lists
# error "__cpp_initializer_lists"
#elif __cpp_initializer_lists != 200806
# error "__cpp_initializer_lists != 200806"
#endif
#ifndef __cpp_delegating_constructors
# error "__cpp_delegating_constructors"
#elif __cpp_delegating_constructors != 200604
# error "__cpp_delegating_constructors != 200604"
#endif
#ifndef __cpp_nsdmi
# error "__cpp_nsdmi"
#elif __cpp_nsdmi != 200809
# error "__cpp_nsdmi != 200809"
#endif
#ifndef __cpp_inheriting_constructors
# error "__cpp_inheriting_constructors"
#elif __cpp_inheriting_constructors!= 201511
# error "__cpp_inheriting_constructors != 201511"
#endif
#ifndef __cpp_ref_qualifiers
# error "__cpp_ref_qualifiers"
#elif __cpp_ref_qualifiers != 200710
# error "__cpp_ref_qualifiers != 200710"
#endif
#ifndef __cpp_alias_templates
# error "__cpp_alias_templates"
#elif __cpp_alias_templates != 200704
# error "__cpp_alias_templates != 200704"
#endif
#ifndef __cpp_threadsafe_static_init
# error "__cpp_threadsafe_static_init"
#elif __cpp_threadsafe_static_init != 200806
# error "__cpp_threadsafe_static_init != 200806"
#endif
// C++14 features allowed in C++11 in non-ANSI modes:
#ifndef __cpp_binary_literals
# error "__cpp_binary_literals"
#elif __cpp_binary_literals != 201304
# error "__cpp_binary_literals != 201304"
#endif
// GNU VLA support:
#ifndef __cpp_runtime_arrays
# error "__cpp_runtime_arrays"
#elif __cpp_runtime_arrays != 198712
# error "__cpp_runtime_arrays != 198712"
#endif
// C++11 attributes:
#ifdef __has_cpp_attribute
# if ! __has_cpp_attribute(noreturn)
# error "__has_cpp_attribute(noreturn)"
# elif __has_cpp_attribute(noreturn) != 200809
# error "__has_cpp_attribute(noreturn) != 200809"
# endif
#else
# error "__has_cpp_attribute"
#endif
#ifdef __has_cpp_attribute
// Attribute carries_dependency not in yet.
//# if ! __has_cpp_attribute(carries_dependency)
//# error "__has_cpp_attribute(carries_dependency)"
//# elif __has_cpp_attribute(carries_dependency) != 200809
//# error "__has_cpp_attribute(carries_dependency) != 200809"
//# endif
#else
# error "__has_cpp_attribute"
#endif
// C++14 attributes:
// Attribute [[deprecated]] is allowed in C++11 as an extension.
#ifdef __has_cpp_attribute
# if ! __has_cpp_attribute(deprecated)
# error "__has_cpp_attribute(deprecated)"
# elif __has_cpp_attribute(deprecated) != 201309
# error "__has_cpp_attribute(deprecated) != 201309"
# endif
#else
# error "__has_cpp_attribute"
#endif