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

Reply via email to