diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c index 05cb493852f..9205826960c 100644 --- a/gcc/lra-constraints.c +++ b/gcc/lra-constraints.c @@ -3459,7 +3459,7 @@ process_address_1 (int nop, bool check_only_p, constraint = skip_contraint_modifiers (curr_static_id->operand[dup].constraint); } - cn = lookup_constraint (constraint); + cn = lookup_constraint (*constraint == '\0' ? "X" : constraint); if (insn_extra_address_constraint (cn) /* When we find an asm operand with an address constraint that doesn't satisfy address_operand to begin with, we clear @@ -3475,9 +3475,8 @@ process_address_1 (int nop, bool check_only_p, i.e. bcst_mem_operand in i386 backend. */ else if (MEM_P (mem) && !(INSN_CODE (curr_insn) < 0 - && ((cn == CONSTRAINT__UNKNOWN && *constraint != 'g') - || (get_constraint_type (cn) == CT_FIXED_FORM - && constraint_satisfied_p (op, cn))))) + && get_constraint_type (cn) == CT_FIXED_FORM + && constraint_satisfied_p (op, cn))) decompose_mem_address (&ad, mem); else if (GET_CODE (op) == SUBREG && MEM_P (SUBREG_REG (op)))