This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH] RISC-V/GAS: Correct an `expr' global shadowing error for pre-4.8 GCC
- From: "Maciej W. Rozycki" <macro at mips dot com>
- To: Palmer Dabbelt <palmer at sifive dot com>, Andrew Waterman <andrew at sifive dot com>, Jim Wilson <jimw at sifive dot com>
- Cc: <binutils at sourceware dot org>
- Date: Sat, 3 Feb 2018 15:15:00 +0000
- Subject: [PATCH] RISC-V/GAS: Correct an `expr' global shadowing error for pre-4.8 GCC
- Authentication-results: sourceware.org; auth=none
Correct a commit f0531ed6a429 ("Compress loads/stores with implicit 0
offset.") regression and remove a `-Wshadow' compilation error:
cc1: warnings being treated as errors
.../gas/config/tc-riscv.c: In function 'riscv_handle_implicit_zero_offset':
.../gas/config/tc-riscv.c:1194: error: declaration of 'expr' shadows a global declaration
.../gas/expr.h:180: error: shadowed declaration is here
make[4]: *** [tc-riscv.o] Error 1
which for versions of GCC before 4.8 prevents GAS for RISC-V targets
from being built. See also GCC PR c/53066.
gas/
* config/tc-riscv.c (riscv_handle_implicit_zero_offset): Rename
`expr' parameter to `ep'.
---
Hi,
This has popped up as a regression in routine cross-target testing for an
unrelated change and should be obvious. OK to apply?
Maciej
---
gas/config/tc-riscv.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
binutils-riscv-gas-expr-shadow.diff
Index: binutils/gas/config/tc-riscv.c
===================================================================
--- binutils.orig/gas/config/tc-riscv.c 2018-01-17 23:59:44.000000000 +0000
+++ binutils/gas/config/tc-riscv.c 2018-01-18 15:07:37.797400998 +0000
@@ -1191,14 +1191,14 @@ my_getSmallExpression (expressionS *ep,
an implicit offset was detected. */
static bfd_boolean
-riscv_handle_implicit_zero_offset (expressionS *expr, const char *s)
+riscv_handle_implicit_zero_offset (expressionS *ep, const char *s)
{
/* Check whether there is only a single bracketed expression left.
If so, it must be the base register and the constant must be zero. */
if (*s == '(' && strchr (s + 1, '(') == 0)
{
- expr->X_op = O_constant;
- expr->X_add_number = 0;
+ ep->X_op = O_constant;
+ ep->X_add_number = 0;
return TRUE;
}