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);