diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0ae7b97cd57c..58d86392b41d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2016-11-13 Uros Bizjak + + PR rtl-optimization/78232 + PR rtl-optimization/78248 + * gcc.dg/ubsan/pr78248.c: New test. + 2016-11-13 Eric Botcazou * gnat.dg/address_conv.adb: New test. diff --git a/gcc/testsuite/gcc.dg/ubsan/pr78248.c b/gcc/testsuite/gcc.dg/ubsan/pr78248.c new file mode 100644 index 000000000000..3483c7747355 --- /dev/null +++ b/gcc/testsuite/gcc.dg/ubsan/pr78248.c @@ -0,0 +1,31 @@ +/* PR rtl-optimization/78232 */ +/* PR rtl-optimization/78248 */ +/* { dg-do run } */ +/* { dg-options "-fsanitize=undefined" } */ + +static struct S +{ + int f0:15; +} a; + +int b[1], c = 2, d, e, f, g; + +int main () +{ + struct S h = { -2 }; + for (; e < 640; e++) + for (; f < 1; f++) + { + if (c < 2) + { + d = b[e]; + h = a; + } + g = c; + c = 1; + if (!h.f0) + break; + c = g; + } + return 0; +}