https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70348
Thomas Schwinge <tschwinge at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |nathan at gcc dot gnu.org --- Comment #4 from Thomas Schwinge <tschwinge at gcc dot gnu.org> --- Martin, thanks for the initial analysis. Nathan CCed for your information; here is a reduced test case (which hopefully still exhibits the original problem): void foo (int sum) { #pragma acc parallel reduction(+:sum) ; } The ICE goes away when adding a data clause, such as copy(sum). When changing sum from a formal parameter to an (initialized) local variable, without adding a data clause, there is no ICE, but a "warning: 'sum' is used uninitialized in this function [-Wuninitialized]". (This probably correct given the current implementation, which requires you to specify a data clause in addition to a reduction clause.) We're currently clarifying with the OpenACC technical committee whether a reduction clause actually implies a data clause.