diff options
author | Martin Liska <mliska@suse.cz> | 2016-12-22 14:09:11 +0100 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2016-12-22 13:09:11 +0000 |
commit | a71dcca81e3bdc9b387a6c6d1496f1f1d414f3d7 (patch) | |
tree | 2ef888a3d6c55a87765f05c3e45045737f90002d /gcc | |
parent | 7fbb9b18cc759b014a90c48f4bcd98709ea0b84b (diff) | |
download | gcc-a71dcca81e3bdc9b387a6c6d1496f1f1d414f3d7.zip gcc-a71dcca81e3bdc9b387a6c6d1496f1f1d414f3d7.tar.gz gcc-a71dcca81e3bdc9b387a6c6d1496f1f1d414f3d7.tar.bz2 |
Fix tree-optimization/78886.
PR tree-optimization/78886
* gcc.dg/tree-ssa/pr78886.c: New test.
PR tree-optimization/78886
* tree-ssa-strlen.c (handle_builtin_malloc): Return when LHS
is equal to NULL.
From-SVN: r243886
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/pr78886.c | 10 | ||||
-rw-r--r-- | gcc/tree-ssa-strlen.c | 3 |
4 files changed, 24 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0b3c84f..b09d8fb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-12-22 Martin Liska <mliska@suse.cz> + + PR tree-optimization/78886 + * tree-ssa-strlen.c (handle_builtin_malloc): Return when LHS + is equal to NULL. + 2016-12-22 Jakub Jelinek <jakub@redhat.com> PR bootstrap/78817 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c63fd5e..c9ab9de 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-12-22 Martin Liska <mliska@suse.cz> + + PR tree-optimization/78886 + * gcc.dg/tree-ssa/pr78886.c: New test. + 2016-12-22 Georg-Johann Lay <avr@gjlay.de> PR testsuite/52641 diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr78886.c b/gcc/testsuite/gcc.dg/tree-ssa/pr78886.c new file mode 100644 index 0000000..9779930 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr78886.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ +void *malloc(unsigned long x); + +void foo(void) +{ + volatile int i; + malloc(1); + i; +} diff --git a/gcc/tree-ssa-strlen.c b/gcc/tree-ssa-strlen.c index 67075f0..4a05725 100644 --- a/gcc/tree-ssa-strlen.c +++ b/gcc/tree-ssa-strlen.c @@ -1869,6 +1869,9 @@ handle_builtin_malloc (enum built_in_function bcode, gimple_stmt_iterator *gsi) { gimple *stmt = gsi_stmt (*gsi); tree lhs = gimple_call_lhs (stmt); + if (lhs == NULL_TREE) + return; + gcc_assert (get_stridx (lhs) == 0); int idx = new_stridx (lhs); tree length = NULL_TREE; |