Since around GCC 10, the condition `j < (INTMAX_MAX / 10)' will get
optimized into `j !=
922337203685477580', which will result in an
infinite loop for certain inputs of `j'.
Copy the condition already used by the -DTILEPRO generator code, which
doesn't fall into this trap.
gcc/ChangeLog:
* config/tilepro/gen-mul-tables.cc (tilegx_emit): Adjust loop
condition to avoid overflow.
(cherry picked from commit
c0ad48527c314a1e9354b7c26718b56ed4abc92c)
long long next_pow10;
while (((j * 10) < abs_multiplier)
- && (j < (INTMAX_MAX / 10)))
+ && (j < (j * 10)))
j = j * 10;
prev_pow10 = j;
- next_pow10 = (j > (INTMAX_MAX / 10)) ? 0 : j * 10;
+ next_pow10 = j * 10;
if ((abs_multiplier - prev_pow10 <= 100)
|| (next_pow10