gcc/libstdc++-v3/libsupc++
Jonathan Wakely ff27340046 Don't unconditionally define feature test macros in <version>
The macro definitions in <version> should depend on the same
preprocessor conditions as the original macros in other headers.
Otherwise <version> can define macros that imply the availability of
features that are not actually defined.

This fix is incomplete, as __cpp_lib_filesystem should depend on whether
libstdc++fs.a is supported, and several macros should only be defined
when _GLIBCXX_HOSTED is defined. Also, the feature test macros should
define their value as type long, but most are type int.

	* include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
	(_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Move definitions here.
	(_GLIBCXX_HAVE_BUILTIN_LAUNDER): Likewise. Use !__is_identifier
	instead of __has_builtin.
	* include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
	(_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Remove definitions from here.
	* include/std/version [!_GLIBCXX_HAS_GTHREADS]
	(__cpp_lib_shared_timed_mutex, __cpp_lib_scoped_lock)
	(__cpp_lib_shared_mutex): Don't define when Gthreads not in use.
	[!_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP]
	(__cpp_lib_has_unique_object_representations): Don't define when
	builtin not available.
	[!_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE] (__cpp_lib_is_aggregate):
	Likewise.
	[!_GLIBCXX_HAVE_BUILTIN_LAUNDER] (__cpp_lib_launder): Likewise.
	* libsupc++/new (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Remove definition
	from here.

From-SVN: r263184
2018-07-31 23:31:14 +01:00
..
array_type_info.cc Update copyright years. 2018-01-03 11:03:58 +01:00
atexit_arm.cc Update copyright years. 2018-01-03 11:03:58 +01:00
atexit_thread.cc Update copyright years. 2018-01-03 11:03:58 +01:00
atomic_lockfree_defines.h Update copyright years. 2018-01-03 11:03:58 +01:00
bad_alloc.cc Update copyright years. 2018-01-03 11:03:58 +01:00
bad_array_length.cc Update copyright years. 2018-01-03 11:03:58 +01:00
bad_array_new.cc Update copyright years. 2018-01-03 11:03:58 +01:00
bad_cast.cc Update copyright years. 2018-01-03 11:03:58 +01:00
bad_typeid.cc Update copyright years. 2018-01-03 11:03:58 +01:00
class_type_info.cc Update copyright years. 2018-01-03 11:03:58 +01:00
cxxabi_forced.h Update copyright years. 2018-01-03 11:03:58 +01:00
cxxabi_init_exception.h PR libstdc++/85812 fix memory leak in std::make_exception_ptr 2018-05-17 16:03:29 +01:00
cxxabi.h Update copyright years. 2018-01-03 11:03:58 +01:00
del_op.cc Update copyright years. 2018-01-03 11:03:58 +01:00
del_opa.cc Update copyright years. 2018-01-03 11:03:58 +01:00
del_opant.cc Update copyright years. 2018-01-03 11:03:58 +01:00
del_opnt.cc Update copyright years. 2018-01-03 11:03:58 +01:00
del_ops.cc Update copyright years. 2018-01-03 11:03:58 +01:00
del_opsa.cc Update copyright years. 2018-01-03 11:03:58 +01:00
del_opv.cc Update copyright years. 2018-01-03 11:03:58 +01:00
del_opva.cc Update copyright years. 2018-01-03 11:03:58 +01:00
del_opvant.cc Update copyright years. 2018-01-03 11:03:58 +01:00
del_opvnt.cc Update copyright years. 2018-01-03 11:03:58 +01:00
del_opvs.cc Update copyright years. 2018-01-03 11:03:58 +01:00
del_opvsa.cc Update copyright years. 2018-01-03 11:03:58 +01:00
dyncast.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_alloc.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_arm.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_atomics.h Update copyright years. 2018-01-03 11:03:58 +01:00
eh_aux_runtime.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_call.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_catch.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_exception.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_globals.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_personality.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_ptr.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_term_handler.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_terminate.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_throw.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_tm.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_type.cc Update copyright years. 2018-01-03 11:03:58 +01:00
eh_unex_handler.cc Update copyright years. 2018-01-03 11:03:58 +01:00
enum_type_info.cc Update copyright years. 2018-01-03 11:03:58 +01:00
exception Update copyright years. 2018-01-03 11:03:58 +01:00
exception_defines.h Update copyright years. 2018-01-03 11:03:58 +01:00
exception_ptr.h PR libstdc++/85812 fix memory leak in std::make_exception_ptr 2018-05-17 16:03:29 +01:00
exception.h PR libstdc++/85831 define move constructors and operators for exceptions 2018-07-05 22:29:51 +01:00
function_type_info.cc Update copyright years. 2018-01-03 11:03:58 +01:00
fundamental_type_info.cc Update copyright years. 2018-01-03 11:03:58 +01:00
guard_error.cc Update copyright years. 2018-01-03 11:03:58 +01:00
guard.cc Update copyright years. 2018-01-03 11:03:58 +01:00
hash_bytes.cc Update copyright years. 2018-01-03 11:03:58 +01:00
hash_bytes.h Update copyright years. 2018-01-03 11:03:58 +01:00
initializer_list Update copyright years. 2018-01-03 11:03:58 +01:00
Makefile.am Update copyright years. 2018-01-03 11:03:58 +01:00
Makefile.in PR libstdc++/86450 use -Wabi=2 and simplify -Werror use 2018-07-17 14:18:47 +01:00
nested_exception.cc Update copyright years. 2018-01-03 11:03:58 +01:00
nested_exception.h Update copyright years. 2018-01-03 11:03:58 +01:00
new Don't unconditionally define feature test macros in <version> 2018-07-31 23:31:14 +01:00
new_handler.cc Update copyright years. 2018-01-03 11:03:58 +01:00
new_op.cc Update copyright years. 2018-01-03 11:03:58 +01:00
new_opa.cc Add workaround for aligned_alloc bug on AIX 2018-07-30 18:12:44 +01:00
new_opant.cc Update copyright years. 2018-01-03 11:03:58 +01:00
new_opnt.cc Update copyright years. 2018-01-03 11:03:58 +01:00
new_opv.cc Update copyright years. 2018-01-03 11:03:58 +01:00
new_opva.cc Update copyright years. 2018-01-03 11:03:58 +01:00
new_opvant.cc Update copyright years. 2018-01-03 11:03:58 +01:00
new_opvnt.cc Update copyright years. 2018-01-03 11:03:58 +01:00
pbase_type_info.cc Update copyright years. 2018-01-03 11:03:58 +01:00
pmem_type_info.cc Update copyright years. 2018-01-03 11:03:58 +01:00
pointer_type_info.cc Update copyright years. 2018-01-03 11:03:58 +01:00
pure.cc Update copyright years. 2018-01-03 11:03:58 +01:00
si_class_type_info.cc Update copyright years. 2018-01-03 11:03:58 +01:00
tinfo2.cc Update copyright years. 2018-01-03 11:03:58 +01:00
tinfo.cc Update copyright years. 2018-01-03 11:03:58 +01:00
tinfo.h Update copyright years. 2018-01-03 11:03:58 +01:00
typeinfo Update copyright years. 2018-01-03 11:03:58 +01:00
unwind-cxx.h Update copyright years. 2018-01-03 11:03:58 +01:00
vec.cc Update copyright years. 2018-01-03 11:03:58 +01:00
vmi_class_type_info.cc Update copyright years. 2018-01-03 11:03:58 +01:00
vterminate.cc Update copyright years. 2018-01-03 11:03:58 +01:00
vtv_stubs.cc Update copyright years. 2018-01-03 11:03:58 +01:00