[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: bison gcc issues
From: |
Paul Eggert |
Subject: |
Re: bison gcc issues |
Date: |
Sun, 22 Jan 2006 00:24:21 -0800 |
User-agent: |
Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux) |
twlevo <address@hidden> writes:
> ./configure --enable-gcc-warnings
> ...
> subpipe.c: In function `create_subpipe':
> subpipe.c:143: warning: cast discards qualifiers from pointer target type
In general we don't worry about warnings like that (in library files).
That's why the compilation keeps going. Library files tend to be a
bit messier.
> In file included from scan-skel-c.c:2:
> scan-skel.c:643: warning: no previous prototype for 'skel_lex'
It sounds like your flex (probably unpatched 2.5.31?) differs from
mine (Debian stable patches for 2.5.31). Mine generates a prototype
for skel_lex. I guess it's easy enough to work around the
discrepancy; please see below.
> BISON_WARNING(-Wswitch-default)
That's a bit drastic in general, but I suppose we can fix some of
them. On my system, -Wswitch-default causes quite a few useless
diagnostics, since memset expands to a switch statement that lacks a
default case.
> quotearg.c:310: warning: switch missing default case
> quotearg.c:457: warning: switch missing default case
That's a gnulib issue, which I suppose we can address separately at
some point.
> scan-gram.c:2210: warning: switch missing default case
> scan-skel.c:978: warning: switch missing default case
That's flex-generated code; no point worrying about it.
> conflicts.c:97: warning: switch missing default case
> conflicts.c:132: warning: switch missing default case
It'd be pure busywork to change that code, I suspect. "default:
break;" would be misleading, since the default case can't occur.
"default: abort ();" would insert an unnecessary runtime check.
> assoc.c:43: warning: switch missing default case
> scan-gram.l:762: warning: switch missing default case
These are easy enough to suppress. I installed the following.
Thanks for the checking.
2006-01-22 Paul Eggert <address@hidden>
* src/assoc.c (assoc_to_string): Use a default: abort (); case
to pacify gcc -Wswitch-default.
* src/scan-gram.l (adjust_location): Use a default: break; case
to pacify gcc -Wswitch-default.
* src/scan-skel.h (skel_get_lineno, skel_get_in, skel_get_out):
(skel_get_leng, skel_get_text, skel_set_lineno, skel_set_in):
(skel_set_out, skel_get_debug, skel_set_debug, skel_lex_destroy):
Move these decls to scan-skel.l, since they don't need to be
visible elsewhere.
* src/scan-skel.l: Accept the above decls.
(skel_lex): New decl, to pacify GCC when unpatched flex 2.5.31
is used.
Index: src/assoc.c
===================================================================
RCS file: /cvsroot/bison/bison/src/assoc.c,v
retrieving revision 1.6
diff -p -u -r1.6 assoc.c
--- src/assoc.c 9 Dec 2005 23:51:25 -0000 1.6
+++ src/assoc.c 22 Jan 2006 08:08:53 -0000
@@ -1,5 +1,5 @@
/* Associativity information.
- Copyright (C) 2002, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005, 2006 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
@@ -29,6 +29,9 @@ assoc_to_string (assoc a)
{
switch (a)
{
+ default:
+ abort ();
+
case undef_assoc:
return "undefined associativity";
@@ -41,5 +44,4 @@ assoc_to_string (assoc a)
case non_assoc:
return "%nonassoc";
}
- return NULL;
}
Index: src/scan-gram.l
===================================================================
RCS file: /cvsroot/bison/bison/src/scan-gram.l,v
retrieving revision 1.83
diff -p -u -r1.83 scan-gram.l
--- src/scan-gram.l 22 Jan 2006 07:38:49 -0000 1.83
+++ src/scan-gram.l 22 Jan 2006 08:08:53 -0000
@@ -752,12 +752,13 @@ adjust_location (location *loc, char con
break;
case '\t':
- {
- column = add_column_width (column, p0, p - p0);
- column = add_column_width (column, NULL, 8 - ((column - 1) & 7));
- p0 = p + 1;
- break;
- }
+ column = add_column_width (column, p0, p - p0);
+ column = add_column_width (column, NULL, 8 - ((column - 1) & 7));
+ p0 = p + 1;
+ break;
+
+ default:
+ break;
}
scanner_cursor.line = line;
Index: src/scan-skel.h
===================================================================
RCS file: /cvsroot/bison/bison/src/scan-skel.h,v
retrieving revision 1.1
diff -p -u -r1.1 scan-skel.h
--- src/scan-skel.h 24 Jul 2005 07:24:22 -0000 1.1
+++ src/scan-skel.h 22 Jan 2006 08:08:53 -0000
@@ -1,6 +1,6 @@
/* Scan Bison Skeletons.
- Copyright (C) 2005 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2006 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
@@ -26,16 +26,3 @@ extern FILE *skel_in;
extern FILE *skel_out;
extern int skel__flex_debug;
extern int skel_lineno;
-
-/* Pacify "gcc -Wmissing-prototypes" when flex 2.5.31 is used. */
-int skel_get_lineno (void);
-FILE *skel_get_in (void);
-FILE *skel_get_out (void);
-int skel_get_leng (void);
-char *skel_get_text (void);
-void skel_set_lineno (int);
-void skel_set_in (FILE *);
-void skel_set_out (FILE *);
-int skel_get_debug (void);
-void skel_set_debug (int);
-int skel_lex_destroy (void);
Index: src/scan-skel.l
===================================================================
RCS file: /cvsroot/bison/bison/src/scan-skel.l,v
retrieving revision 1.38
diff -p -u -r1.38 scan-skel.l
--- src/scan-skel.l 21 Jan 2006 04:35:09 -0000 1.38
+++ src/scan-skel.l 22 Jan 2006 08:08:53 -0000
@@ -39,6 +39,20 @@
#include "files.h"
#include "scan-skel.h"
+/* Pacify "gcc -Wmissing-prototypes" when flex 2.5.31 is used. */
+int skel_lex (void);
+int skel_get_lineno (void);
+FILE *skel_get_in (void);
+FILE *skel_get_out (void);
+int skel_get_leng (void);
+char *skel_get_text (void);
+void skel_set_lineno (int);
+void skel_set_in (FILE *);
+void skel_set_out (FILE *);
+int skel_get_debug (void);
+void skel_set_debug (int);
+int skel_lex_destroy (void);
+
#define QPUTS(String) \
fputs (quotearg_style (c_quoting_style, String), yyout)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: bison gcc issues,
Paul Eggert <=