[compiler-rt] [compiler-rt] Remove redundant checks. (PR #95753)

Dmitriy Chestnykh via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 17 01:35:28 PDT 2024


https://github.com/chestnykh created https://github.com/llvm/llvm-project/pull/95753

Since `__sancov_default_options` and `__asan_default_suppressions` are weak definitions, not weak references (declarations) the checks of equality of addresses of these symbols to zero is not needed. So we can completely remove `MaybeCallSancovDefaultOptions` and use `__sancov_default_options` instead directly. gcc-14 emits `-Waddress` warning to such checks.

>From 9db4df5b6c92d9737eb83496b12a66530b4c0e72 Mon Sep 17 00:00:00 2001
From: Dmitry Chestnykh <dm.chestnykh at gmail.com>
Date: Mon, 17 Jun 2024 11:26:43 +0300
Subject: [PATCH] [compiler-rt] Remove redundant checks.

Since `__sancov_default_options` and `__asan_default_suppressions`
are weak definitions, not weak references (declarations) the checks
of equality of addresses of these symbols to zero is not needed.
So we can completely remove `MaybeCallSancovDefaultOptions`
and use `__sancov_default_options` instead directly.
gcc-14 emits `-Waddress` warning to such checks.
---
 compiler-rt/lib/asan/asan_suppressions.cpp        | 3 +--
 compiler-rt/lib/sanitizer_common/sancov_flags.cpp | 6 +-----
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/compiler-rt/lib/asan/asan_suppressions.cpp b/compiler-rt/lib/asan/asan_suppressions.cpp
index e71d231821866..6cee674960395 100644
--- a/compiler-rt/lib/asan/asan_suppressions.cpp
+++ b/compiler-rt/lib/asan/asan_suppressions.cpp
@@ -39,8 +39,7 @@ void InitializeSuppressions() {
   suppression_ctx = new (suppression_placeholder)
       SuppressionContext(kSuppressionTypes, ARRAY_SIZE(kSuppressionTypes));
   suppression_ctx->ParseFromFile(flags()->suppressions);
-  if (&__asan_default_suppressions)
-    suppression_ctx->Parse(__asan_default_suppressions());
+  suppression_ctx->Parse(__asan_default_suppressions());
 }
 
 bool IsInterceptorSuppressed(const char *interceptor_name) {
diff --git a/compiler-rt/lib/sanitizer_common/sancov_flags.cpp b/compiler-rt/lib/sanitizer_common/sancov_flags.cpp
index ed46e88acdfc6..43b4bcc76729a 100644
--- a/compiler-rt/lib/sanitizer_common/sancov_flags.cpp
+++ b/compiler-rt/lib/sanitizer_common/sancov_flags.cpp
@@ -37,10 +37,6 @@ static void RegisterSancovFlags(FlagParser *parser, SancovFlags *f) {
 #undef SANCOV_FLAG
 }
 
-static const char *MaybeCallSancovDefaultOptions() {
-  return (&__sancov_default_options) ? __sancov_default_options() : "";
-}
-
 void InitializeSancovFlags() {
   SancovFlags *f = sancov_flags();
   f->SetDefaults();
@@ -48,7 +44,7 @@ void InitializeSancovFlags() {
   FlagParser parser;
   RegisterSancovFlags(&parser, f);
 
-  parser.ParseString(MaybeCallSancovDefaultOptions());
+  parser.ParseString(__sancov_default_options());
   parser.ParseStringFromEnv("SANCOV_OPTIONS");
 
   ReportUnrecognizedFlags();



More information about the llvm-commits mailing list