Commit 92574c7c by Marek Polacek Committed by Marek Polacek

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
parent f5db965f
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> 2014-10-16 Andrew MacLeod <amacleod@redhat.com>
* c-pragma.c: Adjust include files. * c-pragma.c: Adjust include files.
......
...@@ -864,6 +864,10 @@ c_common_post_options (const char **pfilename) ...@@ -864,6 +864,10 @@ c_common_post_options (const char **pfilename)
if (warn_implicit_function_declaration == -1) if (warn_implicit_function_declaration == -1)
warn_implicit_function_declaration = flag_isoc99; 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. */ /* Declone C++ 'structors if -Os. */
if (flag_declone_ctor_dtor == -1) if (flag_declone_ctor_dtor == -1)
flag_declone_ctor_dtor = optimize_size; flag_declone_ctor_dtor = optimize_size;
......
...@@ -488,7 +488,7 @@ C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C ...@@ -488,7 +488,7 @@ C ObjC Var(warn_implicit_function_declaration) Init(-1) Warning LangEnabledBy(C
Warn about implicit function declarations Warn about implicit function declarations
Wimplicit-int 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 Warn when a declaration does not specify a type
Wimport Wimport
......
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> 2014-10-17 Alan Modra <amodra@gmail.com>
PR middle-end/61848 PR middle-end/61848
......
...@@ -5330,11 +5330,11 @@ grokdeclarator (const struct c_declarator *declarator, ...@@ -5330,11 +5330,11 @@ grokdeclarator (const struct c_declarator *declarator,
else else
{ {
if (name) 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 " "type defaults to %<int%> in declaration "
"of %qE", name); "of %qE", name);
else 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"); "type defaults to %<int%> in type name");
} }
} }
...@@ -8120,7 +8120,7 @@ start_function (struct c_declspecs *declspecs, struct c_declarator *declarator, ...@@ -8120,7 +8120,7 @@ start_function (struct c_declspecs *declspecs, struct c_declarator *declarator,
} }
if (warn_about_return_type) 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 : (warn_return_type ? OPT_Wreturn_type
: OPT_Wimplicit_int), : OPT_Wimplicit_int),
"return type defaults to %<int%>"); "return type defaults to %<int%>");
...@@ -8429,7 +8429,8 @@ store_parm_decls_oldstyle (tree fndecl, const struct c_arg_info *arg_info) ...@@ -8429,7 +8429,8 @@ store_parm_decls_oldstyle (tree fndecl, const struct c_arg_info *arg_info)
if (flag_isoc99) if (flag_isoc99)
pedwarn (DECL_SOURCE_LOCATION (decl), pedwarn (DECL_SOURCE_LOCATION (decl),
0, "type of %qD defaults to %<int%>", decl); OPT_Wimplicit_int, "type of %qD defaults to %<int%>",
decl);
else else
warning_at (DECL_SOURCE_LOCATION (decl), warning_at (DECL_SOURCE_LOCATION (decl),
OPT_Wmissing_parameter_type, OPT_Wmissing_parameter_type,
......
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> 2014-10-17 Andrew MacLeod <amacleod@redhat.com>
* g++.dg/plugin/pragma_plugin.c: Revert flattening to test plugin header * g++.dg/plugin/pragma_plugin.c: Revert flattening to test plugin header
......
/* { 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" } */
}
/* { 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" } */
}
/* { dg-do compile } */
/* { dg-options "-pedantic-errors -Wno-implicit-int" } */
static l;
foo (a)
{
auto p;
typedef bar;
}
/* { 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" } */
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment