[PATCH] D97854: [RFC][nsan] A Floating-point numerical sanitizer.

Clement Courbet via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 10 22:46:09 PST 2021


courbet added a comment.

In D97854#2617097 <https://reviews.llvm.org/D97854#2617097>, @scanon wrote:

> Is there a mechanism to instruct the sanitizer to ignore a specific expression or function? From a cursory reading, I am mildly concerned about a deluge of false positives from primitives that compute exact (or approximate) residuals; these are acting to eliminate or precisely control floating-point errors, but tend to show up as "unstable" in a naive analysis that isn't aware of them.

Yes: like all sanitizers, what happens behind the scenes is that the frontend (`clang`) sets an annotation on each function in the program. It can be disabled for a specific function with the no_sanitize <https://clang.llvm.org/docs/AttributeReference.html#no-sanitize> attribute.

If `nsan` is disabled for a specific function, any return value will be re-extended again to shadow precision, and the computations will resume from here. This is equivalent to  assuming that the function, its parameters, and any memory reads were correct.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97854/new/

https://reviews.llvm.org/D97854



More information about the llvm-commits mailing list