diff options
author | mpolacek <mpolacek@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-01-08 15:37:35 +0000 |
---|---|---|
committer | mpolacek <mpolacek@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-01-08 15:37:35 +0000 |
commit | 6db33a3dc3c8a1f5570d37eebac1ebe2ea260a66 (patch) | |
tree | b17ff64d436854036e7cc189919357e011c8a37a | |
parent | 669bb8449d7f7e784db67c2fb9eb4422a4031fab (diff) | |
download | ppe42-gcc-6db33a3dc3c8a1f5570d37eebac1ebe2ea260a66.tar.gz ppe42-gcc-6db33a3dc3c8a1f5570d37eebac1ebe2ea260a66.zip |
PR middle-end/59669
* omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
testsuite/
* gcc.dg/gomp/pr59669-1.c: New test.
* gcc.dg/gomp/pr59669-2.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206431 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/omp-low.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/gomp/pr59669-1.c | 9 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/gomp/pr59669-2.c | 9 |
5 files changed, 31 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5ff7cd027f4..5ad197cec21 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2014-01-08 Marek Polacek <polacek@redhat.com> + PR middle-end/59669 + * omp-low.c (simd_clone_adjust): Don't crash if def is NULL. + +2014-01-08 Marek Polacek <polacek@redhat.com> + PR sanitizer/59667 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2. diff --git a/gcc/omp-low.c b/gcc/omp-low.c index f1ec1c6e9ae..05513ee5b9b 100644 --- a/gcc/omp-low.c +++ b/gcc/omp-low.c @@ -11537,7 +11537,7 @@ simd_clone_adjust (struct cgraph_node *node) unsigned int alignment = node->simdclone->args[i].alignment; tree orig_arg = node->simdclone->args[i].orig_arg; tree def = ssa_default_def (cfun, orig_arg); - if (!has_zero_uses (def)) + if (def && !has_zero_uses (def)) { tree fn = builtin_decl_explicit (BUILT_IN_ASSUME_ALIGNED); gimple_seq seq = NULL; @@ -11587,7 +11587,7 @@ simd_clone_adjust (struct cgraph_node *node) tree def = ssa_default_def (cfun, orig_arg); gcc_assert (INTEGRAL_TYPE_P (TREE_TYPE (orig_arg)) || POINTER_TYPE_P (TREE_TYPE (orig_arg))); - if (!has_zero_uses (def)) + if (def && !has_zero_uses (def)) { iter1 = make_ssa_name (orig_arg, NULL); iter2 = make_ssa_name (orig_arg, NULL); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f00c8459f7b..39e7af09ce5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2014-01-08 Marek Polacek <polacek@redhat.com> + + PR middle-end/59669 + * gcc.dg/gomp/pr59669-1.c: New test. + * gcc.dg/gomp/pr59669-2.c: New test. + 2014-01-08 Martin Jambor <mjambor@suse.cz> PR ipa/59610 diff --git a/gcc/testsuite/gcc.dg/gomp/pr59669-1.c b/gcc/testsuite/gcc.dg/gomp/pr59669-1.c new file mode 100644 index 00000000000..c72156d4bd0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/gomp/pr59669-1.c @@ -0,0 +1,9 @@ +/* PR middle-end/59669 */ +/* { dg-do compile } */ +/* { dg-options "-fopenmp" } */ + +#pragma omp declare simd linear(a) +void +foo (int a) +{ +} diff --git a/gcc/testsuite/gcc.dg/gomp/pr59669-2.c b/gcc/testsuite/gcc.dg/gomp/pr59669-2.c new file mode 100644 index 00000000000..f6aad8998f1 --- /dev/null +++ b/gcc/testsuite/gcc.dg/gomp/pr59669-2.c @@ -0,0 +1,9 @@ +/* PR middle-end/59669 */ +/* { dg-do compile } */ +/* { dg-options "-fopenmp" } */ + +#pragma omp declare simd uniform(a) aligned(a:32) +void +bar (int *a) +{ +} |