aboutsummaryrefslogtreecommitdiff
path: root/gcc/opts.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2016-11-09 16:37:28 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2016-11-09 16:37:28 +0100
commit2e955d50a928eac736c1e4a6eddc932d3400200a (patch)
tree03880b28e03c433d65f4c40b64eec608dd81fdb0 /gcc/opts.c
parent14e7281244ddf777d822f1e99518f0e15b0bfea6 (diff)
downloadgcc-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.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/opts.c b/gcc/opts.c
index 2f230ce..d2d6100 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -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),