libstdc++: Avoid using sizeof with function types (PR 93470) Backport from mainline 2020-01-28 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/93470 * include/bits/refwrap.h (reference_wrapper::operator()): Restrict static assertion to object types.
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index bcac851..e997841 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,19 @@ +2020-03-05 Jonathan Wakely <jwakely@redhat.com> + + Backport from mainline + 2020-01-28 Jonathan Wakely <jwakely@redhat.com> + + PR libstdc++/93470 + * include/bits/refwrap.h (reference_wrapper::operator()): Restrict + static assertion to object types. + +2020-01-28 Jonathan Wakely <jwakely@redhat.com> + + PR libstdc++/93325 + * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Use AC_SEARCH_LIBS for + clock_gettime instead of explicit glibc version check. + * configure: Regenerate. + 2020-03-01 H.J. Lu <hongjiu.lu@intel.com> * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
diff --git a/libstdc++-v3/include/bits/refwrap.h b/libstdc++-v3/include/bits/refwrap.h index 6b4335a..d95f7c5 100644 --- a/libstdc++-v3/include/bits/refwrap.h +++ b/libstdc++-v3/include/bits/refwrap.h
@@ -334,7 +334,8 @@ 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)...); }