diff options
author | mpolacek <mpolacek@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-02-11 20:59:58 +0000 |
---|---|---|
committer | mpolacek <mpolacek@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-02-11 20:59:58 +0000 |
commit | 35a51d35b0a082552535c451d169724dad311217 (patch) | |
tree | 5d85039d70c9c0abc499504ae1076e1e027eb6cb | |
parent | 6cb8fb82f149ffca471ef2217144b19db1554344 (diff) | |
download | gcc-35a51d35b0a082552535c451d169724dad311217.tar.gz |
* g++.dg/ubsan/shift-1.C: New test.
* gcc.dg/ubsan/c-shift-2.c: New test.
* c-c++-common/ubsan/shift-5.c: Remove file.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@220631 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/ubsan/shift-5.c | 43 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/ubsan/shift-1.C | 31 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/ubsan/c-shift-2.c | 31 |
4 files changed, 68 insertions, 43 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 17dc81f0639..c62cc2372e5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2015-02-11 Marek Polacek <polacek@redhat.com> + + * g++.dg/ubsan/shift-1.C: New test. + * gcc.dg/ubsan/c-shift-2.c: New test. + * c-c++-common/ubsan/shift-5.c: Remove file. + 2015-02-11 Alex Velenko <Alex.Velenko@arm.com> * gcc.target/aarch64/atomic-op-consume.c (scan-assember-times): diff --git a/gcc/testsuite/c-c++-common/ubsan/shift-5.c b/gcc/testsuite/c-c++-common/ubsan/shift-5.c deleted file mode 100644 index 9e85042b059..00000000000 --- a/gcc/testsuite/c-c++-common/ubsan/shift-5.c +++ /dev/null @@ -1,43 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-fsanitize=shift -w" } */ -/* { dg-shouldfail "ubsan" } */ - -int -foo (int x) -{ - /* None of the following should pass. */ - switch (x) - { - case 1 >> -1: -/* { dg-error "case label does not reduce to an integer constant" "" { target c } 11 } */ -/* { dg-error "is not a constant expression" "" { xfail { *-*-* } } 11 } */ - case -1 >> -1: -/* { dg-error "case label does not reduce to an integer constant" "" { target c } 14 } */ -/* { dg-error "is not a constant expression" "" { xfail { *-*-* } } 14 } */ - case 1 << -1: -/* { dg-error "case label does not reduce to an integer constant" "" { target c } 17 } */ -/* { dg-error "is not a constant expression" "" { xfail { *-*-* } } 17 } */ - case -1 << -1: -/* { dg-error "case label does not reduce to an integer constant" "" { target c } 20 } */ -/* { dg-error "is not a constant expression" "" { xfail { *-*-* } } 20 } */ - return 1; - } - return 0; -} - -int -bar (int x) -{ - /* None of the following should pass. */ - switch (x) - { - case -1 >> 200: -/* { dg-error "case label does not reduce to an integer constant" "" { target c } 34 } */ -/* { dg-error "is not a constant expression" "" { xfail { *-*-* } } 34 } */ - case 1 << 200: -/* { dg-error "case label does not reduce to an integer constant" "" { target c } 37 } */ -/* { dg-error "is not a constant expression" "" { xfail { *-*-* } } 37 } */ - return 1; - } - return 0; -} diff --git a/gcc/testsuite/g++.dg/ubsan/shift-1.C b/gcc/testsuite/g++.dg/ubsan/shift-1.C new file mode 100644 index 00000000000..05e049e82ea --- /dev/null +++ b/gcc/testsuite/g++.dg/ubsan/shift-1.C @@ -0,0 +1,31 @@ +/* { dg-do compile } */ +/* { dg-options "-fsanitize=shift -w" } */ +/* { dg-shouldfail "ubsan" } */ + +int +foo (int x) +{ + /* None of the following should pass. */ + switch (x) + { + case 1 >> -1: /* { dg-error "is not a constant expression" "" { xfail { *-*-* } } } */ + case -1 >> -1: /* { dg-error "is not a constant expression" "" { xfail { *-*-* } } } */ + case 1 << -1: /* { dg-error "is not a constant expression" "" { xfail { *-*-* } } } */ + case -1 << -1: /* { dg-error "is not a constant expression" "" { xfail { *-*-* } } } */ + return 1; + } + return 0; +} + +int +bar (int x) +{ + /* None of the following should pass. */ + switch (x) + { + case -1 >> 200: /* { dg-error "is not a constant expression" "" { xfail { *-*-* } } } */ + case 1 << 200: /* { dg-error "is not a constant expression" "" { xfail { *-*-* } } } */ + return 1; + } + return 0; +} diff --git a/gcc/testsuite/gcc.dg/ubsan/c-shift-2.c b/gcc/testsuite/gcc.dg/ubsan/c-shift-2.c new file mode 100644 index 00000000000..beb0dbec7fd --- /dev/null +++ b/gcc/testsuite/gcc.dg/ubsan/c-shift-2.c @@ -0,0 +1,31 @@ +/* { dg-do compile } */ +/* { dg-options "-fsanitize=shift -w" } */ +/* { dg-shouldfail "ubsan" } */ + +int +foo (int x) +{ + /* None of the following should pass. */ + switch (x) + { + case 1 >> -1: /* { dg-error "case label does not reduce to an integer constant" } */ + case -1 >> -1: /* { dg-error "case label does not reduce to an integer constant" } */ + case 1 << -1: /* { dg-error "case label does not reduce to an integer constant" } */ + case -1 << -1: /* { dg-error "case label does not reduce to an integer constant" } */ + return 1; + } + return 0; +} + +int +bar (int x) +{ + /* None of the following should pass. */ + switch (x) + { + case -1 >> 200: /* { dg-error "case label does not reduce to an integer constant" } */ + case 1 << 200: /* { dg-error "case label does not reduce to an integer constant" } */ + return 1; + } + return 0; +} |