From: Vladimir N. Makarov Date: Tue, 9 Mar 2021 14:05:05 +0000 (-0500) Subject: [PR99454] LRA: Process 0..9 constraints in process_address_1 X-Git-Tag: basepoints/gcc-12~679 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9725df0233b6fb6e761875968b3b8e9fd9f522ac;p=thirdparty%2Fgcc.git [PR99454] LRA: Process 0..9 constraints in process_address_1 We need to process 0..9 constraints to fetch the right op constraint in the function. Also 0..9 constraints gives unknown class constraint class which can result in skipping address normalization for memory in asm. gcc/ChangeLog: PR target/99454 * lra-constraints.c (process_address_1): Process 0..9 constraints in process_address_1. --- diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c index 76e3ff7efe69..feff766c5905 100644 --- a/gcc/lra-constraints.c +++ b/gcc/lra-constraints.c @@ -3452,6 +3452,10 @@ process_address_1 (int nop, bool check_only_p, constraint = skip_contraint_modifiers (curr_static_id->operand[nop].constraint); + if ('0' <= constraint[0] && constraint[0] <= '9') + constraint + = skip_contraint_modifiers (curr_static_id->operand + [constraint[0] - '0'].constraint); cn = lookup_constraint (constraint); if (insn_extra_address_constraint (cn) /* When we find an asm operand with an address constraint that