diff options
author | Jeff Law <law@redhat.com> | 2016-11-11 09:00:47 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2016-11-11 09:00:47 -0700 |
commit | 606f928d3805614e8d2307961198706ed9958a76 (patch) | |
tree | 4536e26f7282becf16c143a8e48ebf01f2a07b83 /gcc/testsuite | |
parent | be2789903f67338ffa89ad26b056aae7571c850b (diff) | |
download | gcc-606f928d3805614e8d2307961198706ed9958a76.zip gcc-606f928d3805614e8d2307961198706ed9958a76.tar.gz gcc-606f928d3805614e8d2307961198706ed9958a76.tar.bz2 |
gimple-ssa-isolate-paths.c (is_divmod_with_given_divisor): New function.
* gimple-ssa-isolate-paths.c (is_divmod_with_given_divisor): New
function.
(stmt_uses_name_in_undefined_way): New function, extracted from
find_implicit_erroneous_behavior and extended for div/mod case.
(stmt_uses_0_or_null_in_undefined_way): New function, extracted from
find_explicit_erroneous_behavior and extended for div/mod case.
(find_implicit_erroneous_behavior): Use new helper function.
(find_explicit_erroneous_behavior): Use new helper function.
* gcc.dg/tree-ssa/isolate-6.c: New test.
* gcc.dg/tree-ssa/isolate-7.c: New test.
From-SVN: r242075
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/isolate-6.c | 19 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/isolate-7.c | 15 |
3 files changed, 39 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 53f27b9..6da1cd8 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-11-11 Jeff Law <law@redhat.com> + + * gcc.dg/tree-ssa/isolate-6.c: New test. + * gcc.dg/tree-ssa/isolate-7.c: New test. + 2016-11-11 Bin Cheng <bin.cheng@arm.com> PR testsuite/78292 diff --git a/gcc/testsuite/gcc.dg/tree-ssa/isolate-6.c b/gcc/testsuite/gcc.dg/tree-ssa/isolate-6.c new file mode 100644 index 0000000..ec7c57a --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/isolate-6.c @@ -0,0 +1,19 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-isolate-paths" } */ + +int x, y; + +static inline int +z () +{ + return x ? y : 0; +} + +int +lower_for (int j) +{ + return j % z (); +} + +/* { dg-final { scan-tree-dump-times "__builtin_trap" 1 "isolate-paths"} } */ + diff --git a/gcc/testsuite/gcc.dg/tree-ssa/isolate-7.c b/gcc/testsuite/gcc.dg/tree-ssa/isolate-7.c new file mode 100644 index 0000000..e63d5a0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/isolate-7.c @@ -0,0 +1,15 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-isolate-paths" } */ + +extern int oof (); +extern int x; +_Bool +gcd_of_steps_may_divide_p () +{ + long cd = 0, val; + if (x) + cd = oof (); + return val % cd == 0; +} +/* { dg-final { scan-tree-dump-times "__builtin_trap" 1 "isolate-paths"} } */ + |