aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2014-10-17 18:37:25 +0000
committerMarek Polacek <mpolacek@gcc.gnu.org>2014-10-17 18:37:25 +0000
commit92574c7cdbf3f32fdc48897990d63e1dc65d5bbf (patch)
tree576be955533c5d97f1f9b493e159d598e84dc02a /gcc
parentf5db965fda4963a26a8e8d6943fb2cab8c590847 (diff)
downloadgcc-92574c7cdbf3f32fdc48897990d63e1dc65d5bbf.zip
gcc-92574c7cdbf3f32fdc48897990d63e1dc65d5bbf.tar.gz
gcc-92574c7cdbf3f32fdc48897990d63e1dc65d5bbf.tar.bz2
c-opts.c (c_common_post_options): Set warn_implicit_int.
c-family/ * c-opts.c (c_common_post_options): Set warn_implicit_int. * c.opt (Wimplicit-int): Initialize to -1. c/ * c-decl.c (grokdeclarator): Use OPT_Wimplicit_int unconditionally. (start_function): Use OPT_Wimplicit_int instead of 0. (store_parm_decls_oldstyle): Likewise. testsuite/ * gcc.dg/Wimplicit-int-1.c: New test. * gcc.dg/Wimplicit-int-2.c: New test. * gcc.dg/Wimplicit-int-3.c: New test. * gcc.dg/Wimplicit-int-4.c: New test. From-SVN: r216412
Diffstat (limited to 'gcc')
-rw-r--r--gcc/c-family/ChangeLog5
-rw-r--r--gcc/c-family/c-opts.c4
-rw-r--r--gcc/c-family/c.opt2
-rw-r--r--gcc/c/ChangeLog6
-rw-r--r--gcc/c/c-decl.c9
-rw-r--r--gcc/testsuite/ChangeLog7
-rw-r--r--gcc/testsuite/gcc.dg/Wimplicit-int-1.c11
-rw-r--r--gcc/testsuite/gcc.dg/Wimplicit-int-2.c11
-rw-r--r--gcc/testsuite/gcc.dg/Wimplicit-int-3.c10
-rw-r--r--gcc/testsuite/gcc.dg/Wimplicit-int-4.c11
10 files changed, 71 insertions, 5 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 0a47f43..6d43fb7 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,8 @@
+2014-10-17 Marek Polacek <polacek@redhat.com>
+
+ * c-opts.c (c_common_post_options): Set warn_implicit_int.
+ * c.opt (Wimplicit-int): Initialize to -1.
+
2014-10-16 Andrew MacLeod <amacleod@redhat.com>
* c-pragma.c: Adjust include files.
diff --git a/gcc/c-family/c-opts.c b/gcc/c-family/c-opts.c
index eb078e3..448eb3e 100644
--- a/gcc/c-family/c-opts.c
+++ b/gcc/c-family/c-opts.c
@@ -864,6 +864,10 @@ c_common_post_options (const char **pfilename)
if (warn_implicit_function_declaration == -1)
warn_implicit_function_declaration = flag_isoc99;
+ /* -Wimplicit-int is enabled by default for C99. */
+ if (warn_implicit_int == -1)
+ warn_implicit_int = flag_isoc99;
+
/* Declone C++ 'structors if -Os. */
if (flag_declone_ctor_dtor == -1)
flag_declone_ctor_dtor = optimize_size;
diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
index 72ac2ed..4f96cf8 100644
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -488,7 +488,7 @@ C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C
Warn about implicit function declarations
Wimplicit-int
-C ObjC Var(warn_implicit_int) Warning LangEnabledBy(C ObjC,Wimplicit)
+C ObjC Var(warn_implicit_int) Init(-1) Warning LangEnabledBy(C ObjC,Wimplicit)
Warn when a declaration does not specify a type
Wimport
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index ac28472..d6a58a8 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -1,3 +1,9 @@
+2014-10-17 Marek Polacek <polacek@redhat.com>
+
+ * c-decl.c (grokdeclarator): Use OPT_Wimplicit_int unconditionally.
+ (start_function): Use OPT_Wimplicit_int instead of 0.
+ (store_parm_decls_oldstyle): Likewise.
+
2014-10-17 Alan Modra <amodra@gmail.com>
PR middle-end/61848
diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c
index 839c67b..b18da48 100644
--- a/gcc/c/c-decl.c
+++ b/gcc/c/c-decl.c
@@ -5330,11 +5330,11 @@ grokdeclarator (const struct c_declarator *declarator,
else
{
if (name)
- warn_defaults_to (loc, flag_isoc99 ? 0 : OPT_Wimplicit_int,
+ warn_defaults_to (loc, OPT_Wimplicit_int,
"type defaults to %<int%> in declaration "
"of %qE", name);
else
- warn_defaults_to (loc, flag_isoc99 ? 0 : OPT_Wimplicit_int,
+ warn_defaults_to (loc, OPT_Wimplicit_int,
"type defaults to %<int%> in type name");
}
}
@@ -8120,7 +8120,7 @@ start_function (struct c_declspecs *declspecs, struct c_declarator *declarator,
}
if (warn_about_return_type)
- warn_defaults_to (loc, flag_isoc99 ? 0
+ warn_defaults_to (loc, flag_isoc99 ? OPT_Wimplicit_int
: (warn_return_type ? OPT_Wreturn_type
: OPT_Wimplicit_int),
"return type defaults to %<int%>");
@@ -8429,7 +8429,8 @@ store_parm_decls_oldstyle (tree fndecl, const struct c_arg_info *arg_info)
if (flag_isoc99)
pedwarn (DECL_SOURCE_LOCATION (decl),
- 0, "type of %qD defaults to %<int%>", decl);
+ OPT_Wimplicit_int, "type of %qD defaults to %<int%>",
+ decl);
else
warning_at (DECL_SOURCE_LOCATION (decl),
OPT_Wmissing_parameter_type,
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b355cb0..a73dad9 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2014-10-17 Marek Polacek <polacek@redhat.com>
+
+ * gcc.dg/Wimplicit-int-1.c: New test.
+ * gcc.dg/Wimplicit-int-2.c: New test.
+ * gcc.dg/Wimplicit-int-3.c: New test.
+ * gcc.dg/Wimplicit-int-4.c: New test.
+
2014-10-17 Andrew MacLeod <amacleod@redhat.com>
* g++.dg/plugin/pragma_plugin.c: Revert flattening to test plugin header
diff --git a/gcc/testsuite/gcc.dg/Wimplicit-int-1.c b/gcc/testsuite/gcc.dg/Wimplicit-int-1.c
new file mode 100644
index 0000000..0c89caf
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/Wimplicit-int-1.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "" } */
+
+static l; /* { dg-warning "type defaults to" } */
+
+foo (a) /* { dg-warning "return type defaults to" } */
+/* { dg-warning "type of .a. defaults to .int." "type" { target *-*-* } 6 } */
+{
+ auto p; /* { dg-warning "type defaults to" } */
+ typedef bar; /* { dg-warning "type defaults to" } */
+}
diff --git a/gcc/testsuite/gcc.dg/Wimplicit-int-2.c b/gcc/testsuite/gcc.dg/Wimplicit-int-2.c
new file mode 100644
index 0000000..158b61c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/Wimplicit-int-2.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-pedantic-errors" } */
+
+static l; /* { dg-error "type defaults to" } */
+
+foo (a) /* { dg-error "return type defaults to" } */
+/* { dg-error "type of .a. defaults to .int." "type" { target *-*-* } 6 } */
+{
+ auto p; /* { dg-error "type defaults to" } */
+ typedef bar; /* { dg-error "type defaults to" } */
+}
diff --git a/gcc/testsuite/gcc.dg/Wimplicit-int-3.c b/gcc/testsuite/gcc.dg/Wimplicit-int-3.c
new file mode 100644
index 0000000..654ce73
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/Wimplicit-int-3.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-pedantic-errors -Wno-implicit-int" } */
+
+static l;
+
+foo (a)
+{
+ auto p;
+ typedef bar;
+}
diff --git a/gcc/testsuite/gcc.dg/Wimplicit-int-4.c b/gcc/testsuite/gcc.dg/Wimplicit-int-4.c
new file mode 100644
index 0000000..b2528356
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/Wimplicit-int-4.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-Wno-implicit -Wimplicit-int" } */
+
+static l; /* { dg-warning "type defaults to" } */
+
+foo (a) /* { dg-warning "return type defaults to" } */
+/* { dg-warning "type of .a. defaults to .int." "type" { target *-*-* } 6 } */
+{
+ auto p; /* { dg-warning "type defaults to" } */
+ typedef bar; /* { dg-warning "type defaults to" } */
+}