libstdc++: Avoid using sizeof with function types (PR 93470)

PR libstdc++/93470
	* include/bits/refwrap.h (reference_wrapper::operator()): Restrict
	static assertion to object types.
This commit is contained in:
Jonathan Wakely 2020-01-28 13:24:09 +00:00
parent 759812fddc
commit 72a9fd209b
2 changed files with 6 additions and 1 deletions

View File

@ -10,6 +10,10 @@
2020-01-28 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/93470
* include/bits/refwrap.h (reference_wrapper::operator()): Restrict
static assertion to object types.
PR libstdc++/93325
* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Use AC_SEARCH_LIBS for
clock_gettime instead of explicit glibc version check.

View File

@ -343,7 +343,8 @@ _GLIBCXX_MEM_FN_TRAITS(&& noexcept, false_type, true_type)
operator()(_Args&&... __args) const
{
#if __cplusplus > 201703L
static_assert(sizeof(type), "type must be complete");
if constexpr (is_object_v<type>)
static_assert(sizeof(type), "type must be complete");
#endif
return std::__invoke(get(), std::forward<_Args>(__args)...);
}