aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-omp.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2008-12-01 16:10:25 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2008-12-01 16:10:25 +0100
commit956adfaf9f574eb75e0f55fa9b6a21efa126d83a (patch)
treed549d9aed6ba1fe9b773286c6c92016841748612 /gcc/c-omp.c
parent193a36816ed0d74599591208bd1520e6d201d9fa (diff)
downloadgcc-956adfaf9f574eb75e0f55fa9b6a21efa126d83a.zip
gcc-956adfaf9f574eb75e0f55fa9b6a21efa126d83a.tar.gz
gcc-956adfaf9f574eb75e0f55fa9b6a21efa126d83a.tar.bz2
re PR c++/38348 (ICE from c_finish_omp_for)
PR c++/38348 * c-omp.c (c_finish_omp_for): Only transform pointer ++ or -- into MODIFY_EXPR if second argument is non-NULL. * g++.dg/gomp/for-19.C: New test. * testsuite/libgomp.c++/for-6.C: New test. From-SVN: r142318
Diffstat (limited to 'gcc/c-omp.c')
-rw-r--r--gcc/c-omp.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/c-omp.c b/gcc/c-omp.c
index b06c830..3be3729 100644
--- a/gcc/c-omp.c
+++ b/gcc/c-omp.c
@@ -357,7 +357,8 @@ c_finish_omp_for (location_t locus, tree declv, tree initv, tree condv,
break;
incr_ok = true;
- if (POINTER_TYPE_P (TREE_TYPE (decl)))
+ if (POINTER_TYPE_P (TREE_TYPE (decl))
+ && TREE_OPERAND (incr, 1))
{
tree t = fold_convert (sizetype, TREE_OPERAND (incr, 1));