diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2014-01-29 13:36:22 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2014-01-29 13:36:22 +0000 |
commit | 4ca56230c68d953102c411f6accfb42a7a61094e (patch) | |
tree | 23b2e12d5aad61dacd6b989f6ce37bd1b8c5a352 | |
parent | 72ca89097ce9ccae4c83c2d2875df0e7790176c3 (diff) | |
download | gcc-4ca56230c68d953102c411f6accfb42a7a61094e.zip gcc-4ca56230c68d953102c411f6accfb42a7a61094e.tar.gz gcc-4ca56230c68d953102c411f6accfb42a7a61094e.tar.bz2 |
re PR c++/58702 (ICE with undeclared variable in OpenMP reduction clause)
/cp
2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58702
* semantics.c (finish_omp_reduction_clause): Check type for
error_mark_node.
/testsuite
2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58702
* g++.dg/gomp/pr58702.C: New.
From-SVN: r207235
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/semantics.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/gomp/pr58702.C | 10 |
4 files changed, 24 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 31217e7..3ed0ef8 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2014-01-29 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/58702 + * semantics.c (finish_omp_reduction_clause): Check type for + error_mark_node. + 2014-01-28 Jason Merrill <jason@redhat.com> PR c++/59791 diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index fd6466d..9fb4fc0 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -5021,7 +5021,9 @@ finish_omp_reduction_clause (tree c, bool *need_default_ctor, bool *need_dtor) tree type = TREE_TYPE (t); if (TREE_CODE (type) == REFERENCE_TYPE) type = TREE_TYPE (type); - if (ARITHMETIC_TYPE_P (type)) + if (type == error_mark_node) + return true; + else if (ARITHMETIC_TYPE_P (type)) switch (OMP_CLAUSE_REDUCTION_CODE (c)) { case PLUS_EXPR: diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 27777da..1e8f971 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-01-29 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/58702 + * g++.dg/gomp/pr58702.C: New. + 2014-01-29 Dodji Seketeli <dodji@redhat.com> * c-c++-common/cpp/warning-zero-location-2.c: Fix error message diff --git a/gcc/testsuite/g++.dg/gomp/pr58702.C b/gcc/testsuite/g++.dg/gomp/pr58702.C new file mode 100644 index 0000000..5bab861 --- /dev/null +++ b/gcc/testsuite/g++.dg/gomp/pr58702.C @@ -0,0 +1,10 @@ +// PR c++/58702 +// { dg-do compile } +// { dg-options "-fopenmp" } + +void foo() +{ + x; // { dg-error "was not declared" } +#pragma omp parallel for reduction(+:x) + for (int i = 0; i < 10; ++i) ; +} |