r274756 - in /trunk/libstdc++-v3: ChangeLog inc...

redi@gcc.gnu.org redi@gcc.gnu.org
Tue Aug 20 21:21:00 GMT 2019


Author: redi
Date: Tue Aug 20 21:21:15 2019
New Revision: 274756

URL: https://gcc.gnu.org/viewcvs?rev=274756&root=gcc&view=rev
Log:
PR libstdc++/91371 make std::is_function handle other calling conventions

The x86 attributes such as ms_abi, stdcall, fastcall etc. alter the
function type, which means that functions with one of those attributes
do not match any of the partial specializations of std::is_function.

Rather than duplicating the list for every calling convention, use a
much simpler definition of std::is_function.

Also redefine __is_referenceable to not rely on partial specializations
for each type of referenceable function.

	PR libstdc++/91371
	* include/std/type_traits (is_function): Simplify definition. Remove
	partial specializations for function types.
	(__is_referenceable): Simplify definition.
	* testsuite/20_util/bind/91371.cc: New test.
	* testsuite/20_util/is_function/91371.cc: New test.
	* testsuite/20_util/is_function/value.cc: Check more pointer types.
	* testsuite/20_util/is_member_function_pointer/91371.cc: New test.
	* testsuite/20_util/is_object/91371.cc: New test.

Added:
    trunk/libstdc++-v3/testsuite/20_util/bind/91371.cc
    trunk/libstdc++-v3/testsuite/20_util/is_function/91371.cc
    trunk/libstdc++-v3/testsuite/20_util/is_member_function_pointer/91371.cc
    trunk/libstdc++-v3/testsuite/20_util/is_object/91371.cc
Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/include/std/type_traits
    trunk/libstdc++-v3/testsuite/20_util/is_function/value.cc



More information about the Libstdc++-cvs mailing list