From 53e65d80dd8ac8b5e68fd62a7dd9f3437e1555d3 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Mon, 27 Apr 2020 17:25:20 +0100 Subject: [PATCH] arm: Fix an rtl checking failure in cde-errors.c cde-errors.c and cde-mve-error-2.c were failing with an rtl checking failure because we applied UINTVAL to a nonconstant argument (specifically a REG). 2020-04-27 Richard Sandiford gcc/ * config/arm/arm-builtins.c (arm_expand_builtin_args): Only apply UINTVAL to CONST_INTs. --- gcc/ChangeLog | 5 +++++ gcc/config/arm/arm-builtins.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ecffa447903..64d71d03b7a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2020-04-27 Richard Sandiford + + * config/arm/arm-builtins.c (arm_expand_builtin_args): Only apply + UINTVAL to CONST_INTs. + 2020-04-27 Srinath Parvathaneni * config/arm/constraints.md (e): Remove constraint. diff --git a/gcc/config/arm/arm-builtins.c b/gcc/config/arm/arm-builtins.c index 16d2fb0b3f0..aee3fd6e2ff 100644 --- a/gcc/config/arm/arm-builtins.c +++ b/gcc/config/arm/arm-builtins.c @@ -3081,7 +3081,8 @@ constant_arg: { if (argc == 0) { - unsigned int cp_bit = UINTVAL (op[argc]); + unsigned int cp_bit = (CONST_INT_P (op[argc]) + ? UINTVAL (op[argc]) : -1); if (IN_RANGE (cp_bit, 0, ARM_CDE_CONST_COPROC)) error ("%Kcoprocessor %d is not enabled " "with +cdecp%d", exp, cp_bit, cp_bit); -- 2.30.2