[PATCH 2/3] PPC/GAS: Correct a signed vs unsigned comparison error with GCC 4.1
Maciej W. Rozycki
macro@linux-mips.org
Wed Sep 19 12:56:00 GMT 2018
Fix a build error:
cc1: warnings being treated as errors
.../gas/config/tc-ppc.c: In function 'ppc_dwsect':
.../gas/config/tc-ppc.c:4091: warning: comparison between signed and unsigned
make[4]: *** [config/tc-ppc.o] Error 1
observed with GCC 4.1.2 with the `powerpc-beos' target.
Here `flag' identifies the type of a DWARF section, as used with the the
first operand to the `.dwsect' pseudo-op, and has no notion of a sign,
or for that matter being arithmetic in the first place[1]. We already
handle this correctly with the `flag' member of the `xcoff_dwsect_name'
structure, however not in the local variable used in GAS to hold the
parsed value of said `.dwsect' pseudo-op's operand.
Use an unsigned data type in GAS then too, observing that both `offsetT'
and `valueT' have the same width, as they correspond to `bfd_signed_vma'
and `bfd_vma' respectively.
References:
[1] "AIX Version 7.2: Assembler Language Reference", IBM Corporation
2015, 2018, Section ".dwsect pseudo-op", pp. 531-532
gas/
* config/tc-ppc.c (ppc_dwsect): Use `valueT' rather than
`offsetT' as the type of `flag'.
---
gas/config/tc-ppc.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
binutils-ppc-gas-xcoff-dwsect-flag.diff
Index: src/gas/config/tc-ppc.c
===================================================================
--- src.orig/gas/config/tc-ppc.c
+++ src/gas/config/tc-ppc.c
@@ -4077,7 +4077,7 @@ ppc_change_debug_section (unsigned int i
static void
ppc_dwsect (int ignore ATTRIBUTE_UNUSED)
{
- offsetT flag;
+ valueT flag;
symbolS *opt_label;
const struct xcoff_dwsect_name *dw;
struct dw_subsection *subseg;
More information about the Binutils
mailing list