From c3c49150cc9711371c4402ceaa6143e4cc91d9a8 Mon Sep 17 00:00:00 2001 From: Dino Radakovic Date: Thu, 16 Jun 2022 14:09:05 -0700 Subject: absl/base/internal/invoke: Ignore bogus warnings on GCC >= 11 PiperOrigin-RevId: 455463553 Change-Id: Ifa6c238556339dd4e36715ac040ca048f2f84a9a --- absl/base/internal/invoke.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/absl/base/internal/invoke.h b/absl/base/internal/invoke.h index 018b1af3..643c2a42 100644 --- a/absl/base/internal/invoke.h +++ b/absl/base/internal/invoke.h @@ -102,8 +102,18 @@ struct MemFunAndRef : StrippedAccept { static decltype((std::declval().* std::declval())(std::declval()...)) Invoke(MemFun&& mem_fun, Obj&& obj, Args&&... args) { +// Ignore bogus GCC warnings on this line. +// See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101436 for similar example. +#if ABSL_INTERNAL_HAVE_MIN_GNUC_VERSION(11, 0) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif return (std::forward(obj).* std::forward(mem_fun))(std::forward(args)...); +#if ABSL_INTERNAL_HAVE_MIN_GNUC_VERSION(11, 0) +#pragma GCC diagnostic pop +#endif } }; -- cgit v1.2.3