This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
This implements - as suggested by Kaveh some weeks ago -, an optional
warning about old-style definitions. This helps to get rid of the
remaining old-style definitions in GCC.
Bootstrapped/regtested on x86_64-linux-gnu.
Ok to commit?
Andreas
2003-09-14 Andreas Jaeger <aj@suse.de>
Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* doc/invoke.texi (Warning Options): Describe -Wold-style-definition.
* c-opts.c (c_common_handle_option): Handle OPT_Wold_style_definition.
* c-parse.in: Warn about old-style parameter definition.
* c-common.c: Define warn_old_style_defintion.
* c-common.h: Declare it.
* c.opt: Add Wold-style-defintion.
testsuite:
2003-09-14 Andreas Jaeger <aj@suse.de>
* gcc.dg/old_style_def.c: New test.
============================================================
Index: gcc/doc/invoke.texi
--- doc/invoke.texi 12 Sep 2003 21:52:00 -0000 1.336
+++ doc/invoke.texi 14 Sep 2003 16:22:04 -0000
@@ -220,7 +220,7 @@ in the following sections.
-Wmain -Wmissing-braces @gol
-Wmissing-format-attribute -Wmissing-noreturn @gol
-Wno-multichar -Wno-format-extra-args -Wno-format-y2k @gol
--Wno-import -Wnonnull -Wpacked -Wpadded @gol
+-Wno-import -Wnonnull -Wold-style-definition -Wpacked -Wpadded @gol
-Wparentheses -Wpointer-arith -Wredundant-decls @gol
-Wreturn-type -Wsequence-point -Wshadow @gol
-Wsign-compare -Wstrict-aliasing @gol
@@ -2867,6 +2867,10 @@ merely indicates that GCC's optimizers w
effectively. Often, the problem is that your code is too big or too
complex; GCC will refuse to optimize programs when the optimization
itself is likely to take inordinate amounts of time.
+
+@item -Wold-style-definition @r{(C only)}
+@opindex Wold-style-definition
+Warn if an old-style function definition is used.
@item -Werror
@opindex Werror
============================================================
Index: gcc/c-opts.c
--- gcc/c-opts.c 19 Aug 2003 20:29:00 -0000 1.88
+++ gcc/c-opts.c 14 Sep 2003 16:22:04 -0000
@@ -554,6 +554,10 @@ c_common_handle_option (size_t scode, co
warn_old_style_cast = value;
break;
+ case OPT_Wold_style_definition:
+ warn_old_style_definition = value;
+ break;
+
case OPT_Woverloaded_virtual:
warn_overloaded_virtual = value;
break;
============================================================
Index: gcc/c-parse.in
--- gcc/c-parse.in 3 Sep 2003 14:57:29 -0000 1.180
+++ gcc/c-parse.in 14 Sep 2003 16:22:05 -0000
@@ -760,6 +760,10 @@ old_style_parm_decls_1:
parsing_iso_function_signature = false; /* Reset after warning. */
}
| datadecls
+ {
+ if (warn_old_style_definition && !in_system_header)
+ warning ("old-style parameter declaration");
+ }
;
/* The following are analogous to lineno_decl, decls and decl
============================================================
Index: gcc/c-common.c
--- gcc/c-common.c 9 Sep 2003 03:35:28 -0000 1.454
+++ gcc/c-common.c 14 Sep 2003 16:22:08 -0000
@@ -429,6 +429,10 @@ int warn_implicit_int;
int warn_nonnull;
+/* Warn about old-style parameter declaration. */
+
+int warn_old_style_definition;
+
/* ObjC language option variables. */
============================================================
Index: gcc/c-common.h
--- gcc/c-common.h 9 Sep 2003 03:35:28 -0000 1.206
+++ gcc/c-common.h 14 Sep 2003 16:22:08 -0000
@@ -591,6 +591,10 @@ extern int warn_implicit_int;
extern int warn_nonnull;
+/* Warn about old-style parameter declaration. */
+
+extern int warn_old_style_definition;
+
/* ObjC language option variables. */
============================================================
Index: gcc/c.opt
--- gcc/c.opt 19 Aug 2003 20:29:00 -0000 1.15
+++ gcc/c.opt 14 Sep 2003 16:22:08 -0000
@@ -312,6 +312,10 @@ Wold-style-cast
C++ ObjC++
Warn if a C-style cast is used in a program
+Wold-style-definition
+C ObjC
+Warn if an old-style style parameter definition is used
+
Woverloaded-virtual
C++ ObjC++
Warn about overloaded virtual function names
============================================================
Index: gcc/testsuite/gcc.dg/old_style_def.c
--- gcc/testsuite/gcc.dg/old_style_def.c created
+++ gcc/testsuite/gcc.dg/old_style_def.c 2003-09-14 18:11:31.000000000 +0200 1.1
@@ -0,0 +1,9 @@
+/* Test for warning about old-style function definition. */
+
+/* Origin: Andreas Jaeger <aj@suse.de> */
+/* { dg-do compile } */
+/* { dg-options "-Wold-style-definition" } */
+
+void
+bar (a) int a; { } /* { dg-warning "old-style parameter declaration" } */
+
--
Andreas Jaeger, aj@suse.de, http://www.suse.de/~aj
SuSE Linux AG, Deutschherrnstr. 15-19, 90429 Nürnberg, Germany
GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126
Attachment:
pgp00000.pgp
Description: PGP signature
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |