[Bug middle-end/94120] New: [OpenACC] ICE in gimplify_adjust_omp_clauses_1 for 'declare' for variable outside scope
burnus at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Mar 10 11:47:53 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94120
Bug ID: 94120
Summary: [OpenACC] ICE in gimplify_adjust_omp_clauses_1 for
'declare' for variable outside scope
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Keywords: ice-on-invalid-code, openacc
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: burnus at gcc dot gnu.org
Target Milestone: ---
The following code gives an ICE; I believe it is invalid as:
"A declare directive must be in the same scope as the declaration of any var
that appears in the data clauses of the directive."
void
f_data (void)
{
int B[10];
#pragma acc data
{
# pragma acc declare copy(B)
for (int i = 0; i < 10; i++)
B[i] = -i;
}
}
In gimplify_adjust_omp_clauses_1, flags = n->value == 1 (= GOVD_SEEN) and
gimplify_omp_ctxp->region_type == ORT_ACC_DATA. – As the value is seen but
nothing else matches, one runs into gcc_unreachable (in line 10123).
EXPECTED:
(a) no ICE :-)
(b) an error as the scope is different!
* * *
Actually, I expect such an error for 'declare' in general (for C/C++/Fortran).
More information about the Gcc-bugs
mailing list