public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r9-9180] libstdc++: Fix clang analyzer suppression [PR 98605]
@ 2021-01-13 14:14 Jonathan Wakely
0 siblings, 0 replies; only message in thread
From: Jonathan Wakely @ 2021-01-13 14:14 UTC (permalink / raw)
To: gcc-cvs, libstdc++-cvs
https://gcc.gnu.org/g:4aeae11db66c9bce0aadf447e6ff0776a97bfccf
commit r9-9180-g4aeae11db66c9bce0aadf447e6ff0776a97bfccf
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Wed Jan 13 11:03:58 2021 +0000
libstdc++: Fix clang analyzer suppression [PR 98605]
The fix for PR libstdc++/82481 should only have applied for targets
where _GLIBCXX_HAVE_TLS is defined. Because it was also done for non-TLS
targets, it isn't possible to use clang's analyzers on non-TLS targets
if the code uses <mutex>. This fixes it by using a NOLINT comment on
the relevant line instead of testing #ifdef __clang_analyzer__ and
compiling different code when analyzing.
I'm not actually able to reproduce the analyzer warning with the tools
from Clang 10.0.1 so I'm not going to try to make the suppression more
specific with NOLINTNEXTLINE(clang-analyzer-code.StackAddressEscape).
libstdc++-v3/ChangeLog:
PR libstdc++/98605
* include/std/mutex (call_once): Use NOLINT to suppress clang
analyzer warnings.
(cherry picked from commit 8d3636923a309074eb19240ebaa30c1a0801eaaf)
Diff:
---
libstdc++-v3/include/std/mutex | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/libstdc++-v3/include/std/mutex b/libstdc++-v3/include/std/mutex
index dfb5f7eb31a..49dfbbac5cd 100644
--- a/libstdc++-v3/include/std/mutex
+++ b/libstdc++-v3/include/std/mutex
@@ -672,7 +672,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
std::forward<_Args>(__args)...);
};
#ifdef _GLIBCXX_HAVE_TLS
- __once_callable = std::__addressof(__callable);
+ __once_callable = std::__addressof(__callable); // NOLINT: PR 82481
__once_call = []{ (*(decltype(__callable)*)__once_callable)(); };
#else
unique_lock<mutex> __functor_lock(__get_once_mutex());
@@ -687,12 +687,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__set_once_functor_lock_ptr(0);
#endif
-#ifdef __clang_analyzer__
- // PR libstdc++/82481
- __once_callable = nullptr;
- __once_call = nullptr;
-#endif
-
if (__e)
__throw_system_error(__e);
}
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-01-13 14:14 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-13 14:14 [gcc r9-9180] libstdc++: Fix clang analyzer suppression [PR 98605] Jonathan Wakely
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).