gcc/libstdc++-v3/libsupc++
Jason Merrill 51dc660315 Implement P0012R1, Make exception specifications part of the type system.
gcc/cp/
	* cp-tree.h (enum tsubst_flags): Add tf_fndecl_type.
	(flag_noexcept_type, ce_type): New.
	* call.c (build_conv): Add ck_fnptr.
	(enum conversion_kind): Change ck_tsafe to ck_fnptr.
	(convert_like_real): Likewise.
	(standard_conversion): Likewise.  Allow function pointer
	conversions for pointers to member functions.
	(reference_compatible_p): Allow function pointer conversions.
	(direct_reference_binding): Likewise.
	(reference_binding): Reference-compatible is no longer a subset of
	reference-related.
	(is_subseq): Also strip ck_lvalue after next_conversion.
	* class.c (instantiate_type): Check fnptr_conv_p.
	(resolve_address_of_overloaded_function): Likewise.
	* cvt.c (can_convert_tx_safety): Now static.
	(noexcept_conv_p, fnptr_conv_p, strip_fnptr_conv): New.
	* decl.c (flag_noexcept_type): Define.
	(cxx_init_decl_processing): Set it.
	(bad_specifiers): Check it.
	(grokdeclarator) [cdk_function]: Add exception-spec to type here.
	* lambda.c (maybe_add_lambda_conv_op): Add exception-spec to
	returned pointer.
	* mangle.c (struct globals): Add need_cxx1z_warning.
	(mangle_decl): Check it.
	(write_exception_spec): New.
	(write_function_type): Call it.
	(canonicalize_for_substitution): Handle exception spec.
	(write_type): Likewise.
	(write_encoding): Set processing_template_decl across mangling of
	partially-instantiated type.
	* pt.c (determine_specialization): Pass tf_fndecl_type.
	(tsubst_decl, fn_type_unification): Likewise.
	(tsubst): Strip tf_fndecl_type, pass it to
	tsubst_exception_specification.
	(convert_nontype_argument_function): Handle function pointer
	conversion.
	(convert_nontype_argument): Likewise.
	(unify, for_each_template_parm_r): Walk into noexcept-specifier.
	* rtti.c (ptr_initializer): Encode noexcept.
	* tree.c (canonical_eh_spec): New.
	(build_exception_variant): Use it.
	* typeck.c (composite_pointer_type): Handle fnptr conversion.
	(comp_except_specs): Compare canonical EH specs.
	(structural_comptypes): Call it.
gcc/c-family/
	* c.opt (Wc++1z-compat): New.
	* c-cppbuiltin.c (c_cpp_builtins): Add __cpp_noexcept_function_type.
libstdc++-v3/
	* include/bits/c++config (_GLIBCXX_NOEXCEPT_PARM)
	(_GLIBCXX_NOEXCEPT_QUAL): New.
	* include/std/type_traits (is_function): Use them.
	* libsubc++/new (launder): Likewise.
	* libsupc++/cxxabi.h (__pbase_type_info::__masks): Add
	__noexcept_mask.
	* libsupc++/pbase_type_info.cc (__do_catch): Handle function
	pointer conversion.
libiberty/
	* cp-demangle.c (is_fnqual_component_type): New.
	(d_encoding, d_print_comp_inner, d_print_mod_list): Use it.
	(FNQUAL_COMPONENT_CASE): New.
	(d_make_comp, has_return_type, d_print_comp_inner)
	(d_print_function_type): Use it.
	(next_is_type_qual): New.
	(d_cv_qualifiers, d_print_mod): Handle noexcept and throw-spec.
include/
	* demangle.h (enum demangle_component_type): Add
	DEMANGLE_COMPONENT_NOEXCEPT, DEMANGLE_COMPONENT_THROW_SPEC.

From-SVN: r241944
2016-11-07 18:09:29 -05:00
..
array_type_info.cc Update copyright years. 2016-01-04 15:30:50 +01:00
atexit_arm.cc Update copyright years. 2016-01-04 15:30:50 +01:00
atexit_thread.cc Update copyright years. 2016-01-04 15:30:50 +01:00
atomic_lockfree_defines.h Update copyright years. 2016-01-04 15:30:50 +01:00
bad_alloc.cc Update copyright years. 2016-01-04 15:30:50 +01:00
bad_array_length.cc Update copyright years. 2016-01-04 15:30:50 +01:00
bad_array_new.cc Update copyright years. 2016-01-04 15:30:50 +01:00
bad_cast.cc Update copyright years. 2016-01-04 15:30:50 +01:00
bad_typeid.cc Update copyright years. 2016-01-04 15:30:50 +01:00
class_type_info.cc Update copyright years. 2016-01-04 15:30:50 +01:00
cxxabi_forced.h Update copyright years. 2016-01-04 15:30:50 +01:00
cxxabi_init_exception.h libstdc++/68297 avoid throw/catch in make_exception_ptr 2016-08-22 18:29:31 +01:00
cxxabi.h Implement P0012R1, Make exception specifications part of the type system. 2016-11-07 18:09:29 -05:00
del_op.cc Update copyright years. 2016-01-04 15:30:50 +01:00
del_opa.cc Implement P0035R4, C++17 new of over-aligned types. 2016-09-09 17:22:15 -04:00
del_opant.cc Implement P0035R4, C++17 new of over-aligned types. 2016-09-09 17:22:15 -04:00
del_opnt.cc Update copyright years. 2016-01-04 15:30:50 +01:00
del_ops.cc Update copyright years. 2016-01-04 15:30:50 +01:00
del_opsa.cc Implement P0035R4, C++17 new of over-aligned types. 2016-09-09 17:22:15 -04:00
del_opv.cc Update copyright years. 2016-01-04 15:30:50 +01:00
del_opva.cc Implement P0035R4, C++17 new of over-aligned types. 2016-09-09 17:22:15 -04:00
del_opvant.cc Implement P0035R4, C++17 new of over-aligned types. 2016-09-09 17:22:15 -04:00
del_opvnt.cc Update copyright years. 2016-01-04 15:30:50 +01:00
del_opvs.cc Update copyright years. 2016-01-04 15:30:50 +01:00
del_opvsa.cc Implement P0035R4, C++17 new of over-aligned types. 2016-09-09 17:22:15 -04:00
dyncast.cc Update copyright years. 2016-01-04 15:30:50 +01:00
eh_alloc.cc libstdc++/69945 Add __gnu_cxx::__freeres hook 2016-03-24 18:13:40 +00:00
eh_arm.cc Update copyright years. 2016-01-04 15:30:50 +01:00
eh_aux_runtime.cc Update copyright years. 2016-01-04 15:30:50 +01:00
eh_call.cc Update copyright years. 2016-01-04 15:30:50 +01:00
eh_catch.cc Update copyright years. 2016-01-04 15:30:50 +01:00
eh_exception.cc libstdc++: Make certain exceptions transaction_safe. 2016-01-15 22:42:41 +00:00
eh_globals.cc Update copyright years. 2016-01-04 15:30:50 +01:00
eh_personality.cc Update copyright years. 2016-01-04 15:30:50 +01:00
eh_ptr.cc Use noexcept instead of _GLIBCXX_USE_NOEXCEPT 2016-10-10 19:32:40 +01:00
eh_term_handler.cc Update copyright years. 2016-01-04 15:30:50 +01:00
eh_terminate.cc Update copyright years. 2016-01-04 15:30:50 +01:00
eh_throw.cc libstdc++/68297 avoid throw/catch in make_exception_ptr 2016-08-22 18:29:31 +01:00
eh_tm.cc Update copyright years. 2016-01-04 15:30:50 +01:00
eh_type.cc Update copyright years. 2016-01-04 15:30:50 +01:00
eh_unex_handler.cc Update copyright years. 2016-01-04 15:30:50 +01:00
enum_type_info.cc Update copyright years. 2016-01-04 15:30:50 +01:00
exception libstdc++/68297 avoid throw/catch in make_exception_ptr 2016-08-22 18:29:31 +01:00
exception_defines.h Update copyright years. 2016-01-04 15:30:50 +01:00
exception_ptr.h Use global operator new in std::make_exception_ptr 2016-10-21 14:21:09 +01:00
exception.h libstdc++/68297 avoid throw/catch in make_exception_ptr 2016-08-22 18:29:31 +01:00
function_type_info.cc Update copyright years. 2016-01-04 15:30:50 +01:00
fundamental_type_info.cc Update copyright years. 2016-01-04 15:30:50 +01:00
guard_error.cc Update copyright years. 2016-01-04 15:30:50 +01:00
guard.cc * libsupc++/guard.cc: Revert my last commit. 2016-03-18 16:44:44 +01:00
hash_bytes.cc Implement -Wimplicit-fallthrough. 2016-09-26 09:42:50 +00:00
hash_bytes.h Update copyright years. 2016-01-04 15:30:50 +01:00
initializer_list Update copyright years. 2016-01-04 15:30:50 +01:00
Makefile.am Implement P0035R4, C++17 new of over-aligned types. 2016-09-09 17:22:15 -04:00
Makefile.in Disable .gnu.attributes tags in compatibility-ldbl.o 2016-09-29 07:33:17 +09:30
nested_exception.cc Update copyright years. 2016-01-04 15:30:50 +01:00
nested_exception.h Remove 'return' from noreturn function 2016-10-12 12:20:29 +01:00
new Implement P0012R1, Make exception specifications part of the type system. 2016-11-07 18:09:29 -05:00
new_handler.cc Update copyright years. 2016-01-04 15:30:50 +01:00
new_op.cc Update copyright years. 2016-01-04 15:30:50 +01:00
new_opa.cc re PR libstdc++/78110 (freestanding libstdc++ fails to compile) 2016-10-26 17:26:00 +00:00
new_opant.cc Fix bootstrap failure when ATOMIC_INT_LOCK_FREE < 2 2016-09-11 11:19:30 +01:00
new_opnt.cc Update copyright years. 2016-01-04 15:30:50 +01:00
new_opv.cc Update copyright years. 2016-01-04 15:30:50 +01:00
new_opva.cc Implement P0035R4, C++17 new of over-aligned types. 2016-09-09 17:22:15 -04:00
new_opvant.cc Fix bootstrap failure when ATOMIC_INT_LOCK_FREE < 2 2016-09-11 11:19:30 +01:00
new_opvnt.cc Update copyright years. 2016-01-04 15:30:50 +01:00
pbase_type_info.cc Implement P0012R1, Make exception specifications part of the type system. 2016-11-07 18:09:29 -05:00
pmem_type_info.cc Update copyright years. 2016-01-04 15:30:50 +01:00
pointer_type_info.cc Update copyright years. 2016-01-04 15:30:50 +01:00
pure.cc Update copyright years. 2016-01-04 15:30:50 +01:00
si_class_type_info.cc Update copyright years. 2016-01-04 15:30:50 +01:00
tinfo2.cc Update copyright years. 2016-01-04 15:30:50 +01:00
tinfo.cc Update copyright years. 2016-01-04 15:30:50 +01:00
tinfo.h Update copyright years. 2016-01-04 15:30:50 +01:00
typeinfo libstdc++/68297 avoid throw/catch in make_exception_ptr 2016-08-22 18:29:31 +01:00
unwind-cxx.h Update copyright years. 2016-01-04 15:30:50 +01:00
vec.cc Update copyright years. 2016-01-04 15:30:50 +01:00
vmi_class_type_info.cc Update copyright years. 2016-01-04 15:30:50 +01:00
vterminate.cc Update copyright years. 2016-01-04 15:30:50 +01:00
vtv_stubs.cc Update copyright years. 2016-01-04 15:30:50 +01:00