tilegx: Fix infinite loop in gen-mul-tables generator
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 c0ad48527c
)
This commit is contained in:
parent
5cf4746c3d
commit
16d4ccc27d
|
@ -1190,11 +1190,11 @@ tilegx_emit (long long multiplier, int num_ops)
|
|||
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
|
||||
|
|
Loading…
Reference in New Issue