[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #65537] Werrors from intprops-internal.h with gcc 8.3.0
From: |
Martin Dorey |
Subject: |
[bug #65537] Werrors from intprops-internal.h with gcc 8.3.0 |
Date: |
Fri, 29 Mar 2024 14:14:57 -0400 (EDT) |
URL:
<https://savannah.gnu.org/bugs/?65537>
Summary: Werrors from intprops-internal.h with gcc 8.3.0
Group: make
Submitter: mdorey
Submitted: Fri 29 Mar 2024 11:14:56 AM PDT
Severity: 3 - Normal
Item Group: Build/Install
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Component Version: SCM
Operating System: POSIX-Based
Fixed Release: None
Triage Status: None
_______________________________________________________
Follow-up Comments:
-------------------------------------------------------
Date: Fri 29 Mar 2024 11:14:56 AM PDT By: Martin Dorey <mdorey>
A fresh git clone of Gnu Make fails to build for me on Debian 10/Buster with:
mv -f $depbase.Tpo $depbase.Po
In file included from lib/intprops.h:21,
from src/arscan.c:379:
src/arscan.c: In function ‘parse_int’:
lib/intprops-internal.h:39:59: error: comparison of unsigned expression < 0 is
always false [-Werror=type-limits]
#define _GL_EXPR_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0)
^
lib/intprops-internal.h:166:42: note: in expansion of macro
‘_GL_EXPR_SIGNED’
((!_GL_SIGNED_TYPE_OR_EXPR (*(r)) && _GL_EXPR_SIGNED (a) &&
_GL_EXPR_SIGNED (b) \
^~~~~~~~~~~~~~~
lib/intprops.h:302:37: note: in expansion of macro
‘_GL_INT_MULTIPLY_WRAPV’
#define INT_MULTIPLY_WRAPV(a, b, r) _GL_INT_MULTIPLY_WRAPV (a, b, r)
^~~~~~~~~~~~~~~~~~~~~~
src/arscan.c:399:14: note: in expansion of macro ‘INT_MULTIPLY_WRAPV’
|| INT_MULTIPLY_WRAPV (val, base, &val)
^~~~~~~~~~~~~~~~~~
lib/intprops-internal.h:372:11: error: comparison of unsigned expression < 0
is always false [-Werror=type-limits]
? ((a) < 0 \
^
lib/intprops-internal.h:167:10: note: in expansion of macro
‘_GL_INT_MULTIPLY_RANGE_OVERFLOW’
&& _GL_INT_MULTIPLY_RANGE_OVERFLOW (a, b, 0, (__typeof__ (*(r))) -1))
\
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/intprops.h:302:37: note: in expansion of macro
‘_GL_INT_MULTIPLY_WRAPV’
#define INT_MULTIPLY_WRAPV(a, b, r) _GL_INT_MULTIPLY_WRAPV (a, b, r)
^~~~~~~~~~~~~~~~~~~~~~
src/arscan.c:399:14: note: in expansion of macro ‘INT_MULTIPLY_WRAPV’
|| INT_MULTIPLY_WRAPV (val, base, &val)
^~~~~~~~~~~~~~~~~~
lib/intprops-internal.h:39:59: error: comparison of unsigned expression < 0 is
always false [-Werror=type-limits]
#define _GL_EXPR_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0)
^
lib/intprops-internal.h:373:10: note: in expansion of macro
‘_GL_EXPR_SIGNED’
? (_GL_EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \
^~~~~~~~~~~~~~~
lib/intprops-internal.h:167:10: note: in expansion of macro
‘_GL_INT_MULTIPLY_RANGE_OVERFLOW’
&& _GL_INT_MULTIPLY_RANGE_OVERFLOW (a, b, 0, (__typeof__ (*(r))) -1))
\
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/intprops.h:302:37: note: in expansion of macro
‘_GL_INT_MULTIPLY_WRAPV’
#define INT_MULTIPLY_WRAPV(a, b, r) _GL_INT_MULTIPLY_WRAPV (a, b, r)
^~~~~~~~~~~~~~~~~~~~~~
src/arscan.c:399:14: note: in expansion of macro ‘INT_MULTIPLY_WRAPV’
|| INT_MULTIPLY_WRAPV (val, base, &val)
^~~~~~~~~~~~~~~~~~
lib/intprops-internal.h:39:59: error: comparison of unsigned expression < 0 is
always false [-Werror=type-limits]
#define _GL_EXPR_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0)
^
lib/intprops-internal.h:380:10: note: in expansion of macro
‘_GL_EXPR_SIGNED’
? (_GL_EXPR_SIGNED (a) \
^~~~~~~~~~~~~~~
lib/intprops-internal.h:167:10: note: in expansion of macro
‘_GL_INT_MULTIPLY_RANGE_OVERFLOW’
&& _GL_INT_MULTIPLY_RANGE_OVERFLOW (a, b, 0, (__typeof__ (*(r))) -1))
\
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/intprops.h:302:37: note: in expansion of macro
‘_GL_INT_MULTIPLY_WRAPV’
#define INT_MULTIPLY_WRAPV(a, b, r) _GL_INT_MULTIPLY_WRAPV (a, b, r)
^~~~~~~~~~~~~~~~~~~~~~
src/arscan.c:399:14: note: in expansion of macro ‘INT_MULTIPLY_WRAPV’
|| INT_MULTIPLY_WRAPV (val, base, &val)
^~~~~~~~~~~~~~~~~~
lib/intprops-internal.h:382:35: error: comparison of integer expressions of
different signedness: ‘int’ and ‘uintmax_t’ {aka ‘long unsigned
int’} [-Werror=sign-compare]
: 0 < (a) && -1 - (tmin) < (a) - 1) \
^
lib/intprops-internal.h:167:10: note: in expansion of macro
‘_GL_INT_MULTIPLY_RANGE_OVERFLOW’
&& _GL_INT_MULTIPLY_RANGE_OVERFLOW (a, b, 0, (__typeof__ (*(r))) -1))
\
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/intprops.h:302:37: note: in expansion of macro
‘_GL_INT_MULTIPLY_WRAPV’
#define INT_MULTIPLY_WRAPV(a, b, r) _GL_INT_MULTIPLY_WRAPV (a, b, r)
^~~~~~~~~~~~~~~~~~~~~~
src/arscan.c:399:14: note: in expansion of macro ‘INT_MULTIPLY_WRAPV’
|| INT_MULTIPLY_WRAPV (val, base, &val)
^~~~~~~~~~~~~~~~~~
lib/intprops-internal.h:386:11: error: comparison of unsigned expression < 0
is always false [-Werror=type-limits]
: ((a) < 0 \
^
lib/intprops-internal.h:167:10: note: in expansion of macro
‘_GL_INT_MULTIPLY_RANGE_OVERFLOW’
&& _GL_INT_MULTIPLY_RANGE_OVERFLOW (a, b, 0, (__typeof__ (*(r))) -1))
\
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/intprops.h:302:37: note: in expansion of macro
‘_GL_INT_MULTIPLY_WRAPV’
#define INT_MULTIPLY_WRAPV(a, b, r) _GL_INT_MULTIPLY_WRAPV (a, b, r)
^~~~~~~~~~~~~~~~~~~~~~
src/arscan.c:399:14: note: in expansion of macro ‘INT_MULTIPLY_WRAPV’
|| INT_MULTIPLY_WRAPV (val, base, &val)
^~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[1]: *** [Makefile:896: src/arscan.o] Error 1
make[1]: Leaving directory '/home/martind/download/make-2024-03-29'
make: *** [Makefile:982: all-recursive] Error 1
martind@stormy:~/download/make-2024-03-29$
I'm not seriously suggesting it but, having found some mail from over a decade
ago at
https://bug-gnulib.gnu.narkive.com/IJgonyeq/test-intprops-c-many-new-warnings
suggesting ignoring the warnings here, I unblocked myself with:
--- a/maintMakefile
+++ b/maintMakefile
@@ -32,6 +32,7 @@ PERLFLAGS := -w
MAKE_CFLAGS := -C -Wall -Wextra -Werror -Wwrite-strings -Wshadow \
-Wdeclaration-after-statement -Wbad-function-cast -Wformat-security \
-Wtype-limits -Wunused-but-set-parameter -Wlogical-op -Wpointer-arith
\
+ -Wno-error=type-limits -Wno-error=sign-compare \
-Wignored-qualifiers -Wformat-signedness -Wduplicated-cond
AM_CFLAGS += $(MAKE_CFLAGS)
I see there's
https://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=4d38340a76dbee56036a5fcc0f052ebcff616a59
upstream, though not in Gnu Make. I don't understand the macro guard there.
Why would Paul Eggert want to avoid using the pragma in the half-open region
between gcc 4.4 and gcc 5, while using it for the half-open region from gcc
4.0 to gcc 4.4? I wondered if it was to do with when support for disabling
warnings was added, but failed to chase down when that was. The comment
mentions a version after 13.2 changing behavior, so I wonder if he intended a
change from 13.3 on, which could be expressed as 14 <= __GNUC__ + (3 <=
__GNUC_MINOR__), which is only two characters different from what was
committed.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?65537>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
- [bug #65537] Werrors from intprops-internal.h with gcc 8.3.0,
Martin Dorey <=
- [bug #65537] Werrors from intprops-internal.h with gcc 8.3.0, Paul D. Smith, 2024/03/29
- [bug #65537] Werrors from intprops-internal.h with gcc 8.3.0, Martin Dorey, 2024/03/29
- [bug #65537] Werrors from intprops-internal.h with gcc 8.3.0, Paul D. Smith, 2024/03/29
- [bug #65537] Werrors from intprops-internal.h with gcc 8.3.0, Martin Dorey, 2024/03/29
- [bug #65537] Werrors from intprops-internal.h with gcc 8.3.0, Paul Eggert, 2024/03/29
- [bug #65537] Werrors from intprops-internal.h with gcc 8.3.0, Paul Eggert, 2024/03/29
- [bug #65537] Werrors from intprops-internal.h with gcc 8.3.0, Martin Dorey, 2024/03/29
- Re: [bug #65537] Werrors from intprops-internal.h with gcc 8.3.0, Jeffrey Walton, 2024/03/29
- [bug #65537] Werrors from intprops-internal.h with gcc 8.3.0, Paul Eggert, 2024/03/29