Commit 72a9fd20 by Jonathan Wakely

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.
parent 759812fd
...@@ -10,6 +10,10 @@ ...@@ -10,6 +10,10 @@
2020-01-28 Jonathan Wakely <jwakely@redhat.com> 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 PR libstdc++/93325
* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Use AC_SEARCH_LIBS for * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Use AC_SEARCH_LIBS for
clock_gettime instead of explicit glibc version check. clock_gettime instead of explicit glibc version check.
......
...@@ -343,7 +343,8 @@ _GLIBCXX_MEM_FN_TRAITS(&& noexcept, false_type, true_type) ...@@ -343,7 +343,8 @@ _GLIBCXX_MEM_FN_TRAITS(&& noexcept, false_type, true_type)
operator()(_Args&&... __args) const operator()(_Args&&... __args) const
{ {
#if __cplusplus > 201703L #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 #endif
return std::__invoke(get(), std::forward<_Args>(__args)...); return std::__invoke(get(), std::forward<_Args>(__args)...);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment