https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97880
Tobias Burnus <burnus at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |burnus at gcc dot gnu.org --- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> --- With trunk, I get for for (int i = 0; i < 8; i++) for (long j = 0; j < 8; j++); foocc.c: In function ‘f._omp_fn.0’: foocc.c:6:1: error: type mismatch in binary expression 6 | } | ^ signed long long int int D.2125 = .tile.5 * .tile.7; during IPA pass: *free_lang_data Draft patch: --- a/gcc/omp-expand.c +++ b/gcc/omp-expand.c @@ -7561 +7561,2 @@ expand_oacc_for (struct omp_region *region, struct omp_for_data *fd) - expr = fold_build2 (MULT_EXPR, diff_type, counts[ix].tile, expr); + expr = fold_build2 (MULT_EXPR, diff_type, + fold_convert (diff_type, counts[ix].tile), expr);