From 477ee235e992f0121c082dd1a2da6758ea81ef97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Klinkovsk=C3=BD?= <klinkovsky@mmg.fjfi.cvut.cz> Date: Fri, 1 Jul 2022 21:36:52 +0200 Subject: [PATCH] Added workaround for a bug in GCC 12 to SharedPointerHost.h --- src/TNL/Pointers/SharedPointerHost.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/TNL/Pointers/SharedPointerHost.h b/src/TNL/Pointers/SharedPointerHost.h index 27945b0587..a71fd36872 100644 --- a/src/TNL/Pointers/SharedPointerHost.h +++ b/src/TNL/Pointers/SharedPointerHost.h @@ -440,10 +440,21 @@ protected: free() { if( this->pd ) { + // As far as we know, GCC 12.0.0 and 12.1.0 issue a false-positive use-after-free warning + // These bug reports may be related: + // - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105327 + // - https://bugzilla.redhat.com/show_bug.cgi?id=2047715 +#if defined( __GNUC__ ) && ! defined( __clang__ ) && ! defined( __NVCC__ ) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wuse-after-free" +#endif if( ! --this->pd->counter ) { delete this->pd; this->pd = nullptr; } +#if defined( __GNUC__ ) && ! defined( __clang__ ) && ! defined( __NVCC__ ) + #pragma GCC diagnostic pop +#endif } } -- GitLab