Now that the really baad OpenMP bugs seem to be fixed (thanhsk for that!) I have a hopefully easy one: I get an ICE (svn from today) for the following C code (and the C++ equivalent as well):
unsigned int i;
#pragma omp parallel for
for (i = 0; i < 5; ++i)
dummy = i;
LANG=C gcc-4.2 -c -fopenmp -o gcc-bug-signed.o gcc-bug-signed.c
gcc-bug-signed.c: In function 'f':
gcc-bug-signed.c:6: warning: iteration variable 'i' is unsigned
gcc-bug-signed.c:6: internal compiler error: in gimplify_omp_for, at gimplify.c:4753
FYI icc 8.1 flags the unsigned variable as error.
4753 gcc_assert (!TYPE_UNSIGNED (TREE_TYPE (decl)));
if (TYPE_UNSIGNED (TREE_TYPE (decl)))
warning (0, "%Hiteration variable %qE is unsigned", &elocus, decl);
We only warn but then we assert it being false, what a joke.
Subject: Bug 27499
Date: Tue May 16 10:12:39 2006
New Revision: 113822
* gimplify.c (gimplify_omp_for): Remove assertion that iteration var
* gcc.dg/gomp/pr27499.c: New test.
* g++.dg/gomp/pr27499.C: New test.
Fixed in SVN.