diff options
author | Jan Beulich <jbeulich@suse.com> | 2023-04-25 11:17:19 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2023-04-25 11:17:19 +0200 |
commit | b33e94cfa4777b68719794ad1c1ef630e3dca3c2 (patch) | |
tree | d16855d85aae46ba3905759f7defb8d5d559ce36 | |
parent | a5e756e63e170cf69e06be98287528760833aad5 (diff) | |
download | binutils-b33e94cfa4777b68719794ad1c1ef630e3dca3c2.zip binutils-b33e94cfa4777b68719794ad1c1ef630e3dca3c2.tar.gz binutils-b33e94cfa4777b68719794ad1c1ef630e3dca3c2.tar.bz2 |
RISC-V: don't recognize bogus relocations
With my_getSmallExpression() consistently and silently failing on
relocation operators not fitting an insn, it is no longer necessary to
hand it percent_op_itype[] "just in case" (i.e. to avoid errors when a
subsequent parsing attempt for another operand combination might
succeed). This also eliminates the latent problem of percent_op_itype[]
and percent_op_stype[] growing a non-identical set of recognized
relocation operators.
-rw-r--r-- | gas/config/tc-riscv.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c index 6b7112b..c99bab9 100644 --- a/gas/config/tc-riscv.c +++ b/gas/config/tc-riscv.c @@ -2531,7 +2531,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr, imm_expr->X_op = O_absent; *imm_reloc = BFD_RELOC_UNUSED; - p = percent_op_itype; + p = percent_op_null; for (oparg = insn->args;; ++oparg) { @@ -3247,7 +3247,6 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr, p = percent_op_rtype; goto alu_op; case '0': /* AMO displacement, which must be zero. */ - p = percent_op_null; load_store: if (riscv_handle_implicit_zero_offset (imm_expr, asarg)) continue; |