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  <richard.sandiford@arm.com>

gcc/
	* config/arm/arm-builtins.c (arm_expand_builtin_args): Only apply
	UINTVAL to CONST_INTs.
This commit is contained in:
Richard Sandiford 2020-04-27 17:25:20 +01:00
parent 3d537943fb
commit 53e65d80dd
2 changed files with 7 additions and 1 deletions

View file

@ -1,3 +1,8 @@
2020-04-27 Richard Sandiford <richard.sandiford@arm.com>
* config/arm/arm-builtins.c (arm_expand_builtin_args): Only apply
UINTVAL to CONST_INTs.
2020-04-27 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
* config/arm/constraints.md (e): Remove constraint.

View file

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