-
Notifications
You must be signed in to change notification settings - Fork 14.3k
[compiler-rt] add check-cmp flag for nsan #108707
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@llvm/pr-subscribers-compiler-rt-sanitizer Author: None (c8ef) ChangesFixes #108435. Full diff: https://github.com/llvm/llvm-project/pull/108707.diff 2 Files Affected:
diff --git a/compiler-rt/lib/nsan/nsan.cpp b/compiler-rt/lib/nsan/nsan.cpp
index 4679bcd589eb45..1c06340549acae 100644
--- a/compiler-rt/lib/nsan/nsan.cpp
+++ b/compiler-rt/lib/nsan/nsan.cpp
@@ -25,7 +25,7 @@
// on the runtime configuration. The middle part indicates the type of
// the application value, the suffix (f,d,l) indicates the type of the
// shadow, and depends on the instrumentation configuration.
-// * __nsan_fcmp_fail_* emits a warning for an fcmp instruction whose
+// * __nsan_fcmp_fail_* emits a warning for a fcmp instruction whose
// corresponding shadow fcmp result differs.
//
//===----------------------------------------------------------------------===//
@@ -682,7 +682,7 @@ void fCmpFailFT(const FT Lhs, const FT Rhs, ShadowFT LhsShadow,
if (flags().enable_warning_stats)
nsan_stats->AddWarning(CheckTypeT::kFcmp, pc, bp, 0.0);
- if (flags().disable_warnings)
+ if (flags().disable_warnings || !flags().check_cmp)
return;
// FIXME: ideally we would print the shadow value as FP128. Right now because
diff --git a/compiler-rt/lib/nsan/nsan_flags.inc b/compiler-rt/lib/nsan/nsan_flags.inc
index 7c9e579d91fc33..760973295a8a50 100644
--- a/compiler-rt/lib/nsan/nsan_flags.inc
+++ b/compiler-rt/lib/nsan/nsan_flags.inc
@@ -49,4 +49,7 @@ NSAN_FLAG(bool, enable_loadtracking_stats, false,
NSAN_FLAG(bool, poison_in_free, true, "")
NSAN_FLAG(bool, print_stats_on_exit, false, "If true, print stats on exit.")
NSAN_FLAG(bool, check_nan, false,
- "If true, check the floating-point number is nan")
\ No newline at end of file
+ "If true, check the floating-point number is nan")
+NSAN_FLAG(bool, check_cmp, true,
+ "If true, emit a warning for a fcmp instruction whose "
+ "corresponding shadow fcmp result differs.")
|
Hi @vitalybuka, could you please take a look at this patch? |
The patch needs tests |
Add a test? We typically reserve "fix ..." to mean bug fixes. Implementing a feature can use |
Test case added. |
Dear reviewers, could you kindly review this patch again? 🥰 |
Thanks for the update, I'll come back to this soon |
LGTM with some minor nits |
Thanks! |
Closes #108435.