https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97880
Tobias Burnus <burnus at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|[8/9/10/11 Regression] ICE |[8/9/10/11 Regression] |in |[OpenACC] ICE in |emit_library_call_value_1, |emit_library_call_value_1, |at calls.c:5298 |at calls.c:5298 --- Comment #3 from Tobias Burnus <burnus at gcc dot gnu.org> --- (In reply to Tobias Burnus from comment #2) > +++ b/gcc/omp-expand.c > @@ -7561 +7561,2 @@ expand_oacc_for (struct omp_region *region, struct I think my draft patch is not quite right: expand_oacc_for (struct omp_region *region, struct omp_for_data *fd) has: tree iter_type = TREE_TYPE (v); tree diff_type = iter_type; and if (fd->collapse > 1 || fd->tiling) tree total = expand_oacc_collapse_init (fd, &gsi, counts, TREE_TYPE (fd->loop.n2), loc); The called expand_oacc_collapse_init also extracts the types. as does expand_oacc_collapse_vars . At least for some of those loop *_type, the largest TYPE_PRECISION has to be used.