[llvm-dev] How to disable UBsan divide-by-zero in source files?
Eli Friedman via llvm-dev
llvm-dev at lists.llvm.org
Mon Mar 30 10:01:19 PDT 2020
https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html#issue-suppression .
Also, the float-divide-by-zero diagnostic is no longer part of -fsanitize=undefined, as of clang 9.0.
-Eli
-----Original Message-----
From: llvm-dev <llvm-dev-bounces at lists.llvm.org> On Behalf Of Jeffrey Walton via llvm-dev
Sent: Sunday, March 29, 2020 4:18 PM
To: llvm-dev <llvm-dev at lists.llvm.org>
Subject: [EXT] [llvm-dev] How to disable UBsan divide-by-zero in source files?
Hi Everyone,
I'm catching a finding for divide by zero when using floats. I think
this is a false positive since IEEE 754 states either a trap or
infinity:
$ cat test.c
#include <float.h>
#include <math.h>
int main(void)
{
return INFINITY == 1.0f / 0.0f ? 0 : 1;
}
$ clang -fsanitize=undefined test.c -o test.exe
$ ./test.exe
test.c:5:27: runtime error: division by zero
I'm looking for a way to disable UBsan divide-by-zero in the source
code. I don't see something like:
#pragma clang diagnostic ignored "-fsanitize=divide-by-zero"
Trying to use a pragma results in
(https://clang.llvm.org/docs/UsersManual.html#controlling-diagnostics-via-pragmas):
$ clang -fsanitize=undefined test.c -o test.exe
test.c:4:34: warning: pragma diagnostic expected option name (e.g.
"-Wundef")
[-Wunknown-pragmas]
#pragma clang diagnostic ignored "-fsanitize=divide-by-zero"
How do disable divide-by-zero at the source level?
The use case is, users who run self tests will
CFLAGS="-fsanitize=undefined". They should not need to investigate
findings, and add additional flags like no-divide-by-zero. Things
should just work for them.
Thanks in advance.
_______________________________________________
LLVM Developers mailing list
llvm-dev at lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
More information about the llvm-dev
mailing list