diff options
author | Jakub Jelinek <jakub@redhat.com> | 2016-11-09 16:37:28 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2016-11-09 16:37:28 +0100 |
commit | 2e955d50a928eac736c1e4a6eddc932d3400200a (patch) | |
tree | 03880b28e03c433d65f4c40b64eec608dd81fdb0 /gcc/opts.c | |
parent | 14e7281244ddf777d822f1e99518f0e15b0bfea6 (diff) | |
download | gcc-2e955d50a928eac736c1e4a6eddc932d3400200a.zip gcc-2e955d50a928eac736c1e4a6eddc932d3400200a.tar.gz gcc-2e955d50a928eac736c1e4a6eddc932d3400200a.tar.bz2 |
flag-types.h (enum sanitize_code): Add SANITIZE_SHIFT_BASE and SANITIZE_SHIFT_EXPONENT...
* flag-types.h (enum sanitize_code): Add SANITIZE_SHIFT_BASE
and SANITIZE_SHIFT_EXPONENT, change SANITIZE_SHIFT to bitwise
or of them, renumber other enumerators.
* opts.c (sanitizer_opts): Add shift-base and shift-exponent.
* doc/invoke.texi: Document -fsanitize=shift-base and
-fsanitize-shift-exponent, document -fsanitize=shift as
having those 2 suboptions.
c-family/
* c-ubsan.c (ubsan_instrument_shift): Handle split
-fsanitize=shift-base and -fsanitize=shift-exponent.
testsuite/
* gcc.dg/ubsan/c99-shift-3.c: New test.
* gcc.dg/ubsan/c99-shift-4.c: New test.
* gcc.dg/ubsan/c99-shift-5.c: New test.
* gcc.dg/ubsan/c99-shift-6.c: New test.
From-SVN: r242005
Diffstat (limited to 'gcc/opts.c')
-rw-r--r-- | gcc/opts.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -1477,6 +1477,8 @@ const struct sanitizer_opts_s sanitizer_opts[] = SANITIZER_OPT (thread, SANITIZE_THREAD, false), SANITIZER_OPT (leak, SANITIZE_LEAK, false), SANITIZER_OPT (shift, SANITIZE_SHIFT, true), + SANITIZER_OPT (shift-base, SANITIZE_SHIFT_BASE, true), + SANITIZER_OPT (shift-exponent, SANITIZE_SHIFT_EXPONENT, true), SANITIZER_OPT (integer-divide-by-zero, SANITIZE_DIVIDE, true), SANITIZER_OPT (undefined, SANITIZE_UNDEFINED, true), SANITIZER_OPT (unreachable, SANITIZE_UNREACHABLE, false), |