From: Jakub Jelinek Date: Tue, 30 May 2017 07:42:48 +0000 (+0200) Subject: backport: re PR middle-end/67335 (ICE in compiling omp simd function with unused... X-Git-Tag: releases/gcc-5.5.0~286 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8e9838cb421ed6d95a122ca291099cf422189281;p=thirdparty%2Fgcc.git backport: re PR middle-end/67335 (ICE in compiling omp simd function with unused argument) Backported from mainline 2016-11-21 Jakub Jelinek PR middle-end/67335 * omp-low.c (simd_clone_adjust_argument_types): Use NULL prefix for tmp simd array if DECL_NAME (parm) is NULL. * g++.dg/vect/simd-clone-7.cc: New test. From-SVN: r248625 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0f79e4fe0417..eb6f4b757f24 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,6 +1,12 @@ 2017-05-30 Jakub Jelinek Backported from mainline + 2016-11-21 Jakub Jelinek + + PR middle-end/67335 + * omp-low.c (simd_clone_adjust_argument_types): Use NULL prefix + for tmp simd array if DECL_NAME (parm) is NULL. + 2016-11-16 Jakub Jelinek PR rtl-optimization/78378 diff --git a/gcc/omp-low.c b/gcc/omp-low.c index 0ea879f37100..308e13506073 100644 --- a/gcc/omp-low.c +++ b/gcc/omp-low.c @@ -12946,7 +12946,9 @@ simd_clone_adjust_argument_types (struct cgraph_node *node) if (node->definition) node->simdclone->args[i].simd_array - = create_tmp_simd_array (IDENTIFIER_POINTER (DECL_NAME (parm)), + = create_tmp_simd_array (DECL_NAME (parm) + ? IDENTIFIER_POINTER (DECL_NAME (parm)) + : NULL, parm_type, node->simdclone->simdlen); } adjustments.safe_push (adj); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a26f8973f937..677585fe4281 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,6 +1,11 @@ 2017-05-30 Jakub Jelinek Backported from mainline + 2016-11-21 Jakub Jelinek + + PR middle-end/67335 + * g++.dg/vect/simd-clone-7.cc: New test. + 2016-11-18 Jakub Jelinek PR c++/77285 diff --git a/gcc/testsuite/g++.dg/vect/simd-clone-7.cc b/gcc/testsuite/g++.dg/vect/simd-clone-7.cc new file mode 100644 index 000000000000..fd5751b30bbd --- /dev/null +++ b/gcc/testsuite/g++.dg/vect/simd-clone-7.cc @@ -0,0 +1,10 @@ +// PR middle-end/67335 +// { dg-do compile } +// { dg-additional-options "-fopenmp-simd" } + +#pragma omp declare simd notinbranch uniform(y) +float +bar (float x, float *y, int) +{ + return y[0] + y[1] * x; +}