[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gas/14775] New: [2.23] gas build failure for aarch64-linux: set but
From: |
mikpe at it dot uu.se |
Subject: |
[Bug gas/14775] New: [2.23] gas build failure for aarch64-linux: set but not used variable in tc-aarch64.c:first_error_fmt |
Date: |
Sat, 27 Oct 2012 17:48:16 +0000 |
http://sourceware.org/bugzilla/show_bug.cgi?id=14775
Bug #: 14775
Summary: [2.23] gas build failure for aarch64-linux: set but
not used variable in tc-aarch64.c:first_error_fmt
Product: binutils
Version: 2.23
Status: NEW
Severity: normal
Priority: P2
Component: gas
AssignedTo: address@hidden
ReportedBy: address@hidden
Classification: Unclassified
I've previously built cvs head snapshots for aarch64-linux. Attempting to do
so with the binutils-2.23 release fails as follows:
gcc -DHAVE_CONFIG_H -I. -I/tmp/binutils-2.23/gas -I. -I/tmp/binutils-2.23/gas
-I../bfd -I/tmp/binutils-2.23/gas/config -I/tmp/binutils-2.23/gas/../include
-I/tmp/binutils-2.23/gas/.. -I/tmp/binutils-2.23/gas/../bfd
-DLOCALEDIR="\"/tmp/install/share/locale\"" -W -Wall -Wstrict-prototypes
-Wmissing-prototypes -Wshadow -Werror -g -O2 -MT tc-aarch64.o -MD -MP -MF
.deps/tc-aarch64.Tpo -c -o tc-aarch64.o `test -f 'config/tc-aarch64.c' || echo
'/tmp/binutils-2.23/gas/'`config/tc-aarch64.c
/tmp/binutils-2.23/gas/config/tc-aarch64.c: In function 'first_error_fmt':
/tmp/binutils-2.23/gas/config/tc-aarch64.c:646:11: error: variable 'ret' set
but not used [-Werror=unused-but-set-variable]
The code in question is:
{
int ret;
va_start (args, format);
ret = vsnprintf (buffer, size, format, args);
know (ret <= size - 1 && ret >= 0);
va_end (args);
set_syntax_error (buffer);
}
That is, the variable ret is only used in the assert-like know call. However,
know is a macro that expands to a dummy statement (do{}while(0)), so the actual
parameter expression disappears and ret is unused-but-set.
This doesn't happen when building from cvs head, presumably because know then
expands to gas_assert which does evaluate the expression.
I don't want to use --disable-werror by default. Is there a reason why know(p)
can't use the standard technique of expanding to (void)(p)? That change fixes
the problem for me.
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
- [Bug gas/14775] New: [2.23] gas build failure for aarch64-linux: set but not used variable in tc-aarch64.c:first_error_fmt,
mikpe at it dot uu.se <=