Hi, I notice that aarch64 simd index range message not correct on 32 bit host.
The message print by the function aarch64_simd_lane_bounds in aarch64.c. The function print HOST_WIDE_INT variable by %ld which is correct on 64 bit host. However, on 32 bit host HOST_WIDE_INT would be long long. Therefore, print out incorrect message on 32 bit host. Fix the message by printing HOST_WIDE_INT variables on 32 bit host by %lld. Shiva
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 083b9b4..49b007e 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -8903,9 +8903,21 @@ aarch64_simd_lane_bounds (rtx operand, HOST_WIDE_INT low, HOST_WIDE_INT high, if (lane < low || lane >= high) { if (exp) - error ("%Klane %ld out of range %ld - %ld", exp, lane, low, high - 1); + { +#if INT64_T_IS_LONG + error ("%Klane %ld out of range %ld - %ld", exp, lane, low, high - 1); +#else + error ("%Klane %lld out of range %lld - %lld", exp, lane, low, high - 1); +#endif + } else - error ("lane %ld out of range %ld - %ld", lane, low, high - 1); + { +#if INT64_T_IS_LONG + error ("lane %ld out of range %ld - %ld", lane, low, high - 1); +#else + error ("lane %lld out of range %lld - %lld", lane, low, high - 1); +#endif + } } }
ChangeLog.fix_simd_index_message
Description: Binary data