Commit 46308474 by Luis Felipe Strano Moraes Committed by Manuel López-Ibáñez

c-decl.c (get_parm_info): Remove static var.

gcc/c/ChangeLog

2015-07-28  Luis Felipe Strano Moraes  <luis.strano@gmail.com>
	    Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c-decl.c (get_parm_info): Remove static var. Update warning
	message.

gcc/testsuite/ChangeLog

2015-07-28  Luis Felipe Strano Moraes  <luis.strano@gmail.com>
	    Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* gcc.dg/parm-incomplete-1.c: Update.
	* gcc.dg/pr18809-1.c: Update.
	* gcc.dg/pr27953.c: Update.
	* gcc.dg/vla-11.c: Update.

Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>

From-SVN: r226274
parent 160654a0
2015-07-28 Luis Felipe Strano Moraes <luis.strano@gmail.com>
Manuel López-Ibáñez <manu@gcc.gnu.org>
* c-decl.c (get_parm_info): Remove static var. Update warning
message.
2015-07-27 Marek Polacek <polacek@redhat.com> 2015-07-27 Marek Polacek <polacek@redhat.com>
PR c++/66555 PR c++/66555
......
...@@ -6897,7 +6897,6 @@ get_parm_info (bool ellipsis, tree expr) ...@@ -6897,7 +6897,6 @@ get_parm_info (bool ellipsis, tree expr)
tree types = 0; tree types = 0;
tree others = 0; tree others = 0;
static bool explained_incomplete_types = false;
bool gave_void_only_once_err = false; bool gave_void_only_once_err = false;
arg_info->had_vla_unspec = current_scope->had_vla_unspec; arg_info->had_vla_unspec = current_scope->had_vla_unspec;
...@@ -7000,19 +6999,16 @@ get_parm_info (bool ellipsis, tree expr) ...@@ -7000,19 +6999,16 @@ get_parm_info (bool ellipsis, tree expr)
{ {
if (b->id) if (b->id)
/* The %s will be one of 'struct', 'union', or 'enum'. */ /* The %s will be one of 'struct', 'union', or 'enum'. */
warning (0, "%<%s %E%> declared inside parameter list", warning_at (input_location, 0,
keyword, b->id); "%<%s %E%> declared inside parameter list"
" will not be visible outside of this definition or"
" declaration", keyword, b->id);
else else
/* The %s will be one of 'struct', 'union', or 'enum'. */ /* The %s will be one of 'struct', 'union', or 'enum'. */
warning (0, "anonymous %s declared inside parameter list", warning_at (input_location, 0,
keyword); "anonymous %s declared inside parameter list"
" will not be visible outside of this definition or"
if (!explained_incomplete_types) " declaration", keyword);
{
warning (0, "its scope is only this definition or declaration,"
" which is probably not what you want");
explained_incomplete_types = true;
}
} }
tag.id = b->id; tag.id = b->id;
......
2015-07-28 Luis Felipe Strano Moraes <luis.strano@gmail.com>
Manuel López-Ibáñez <manu@gcc.gnu.org>
* gcc.dg/parm-incomplete-1.c: Update.
* gcc.dg/pr18809-1.c: Update.
* gcc.dg/pr27953.c: Update.
* gcc.dg/vla-11.c: Update.
2015-07-27 Marek Polacek <polacek@redhat.com> 2015-07-27 Marek Polacek <polacek@redhat.com>
* c-c++-common/Wtautological-compare-2.c: Remove unused line. * c-c++-common/Wtautological-compare-2.c: Remove unused line.
......
...@@ -17,7 +17,6 @@ struct s { int b; }; ...@@ -17,7 +17,6 @@ struct s { int b; };
void h (struct s x) { } void h (struct s x) { }
void j(struct t2); /* { dg-warning "'struct t2' declared inside parameter list" } */ void j(struct t2); /* { dg-warning "'struct t2' declared inside parameter list" } */
/* { dg-warning "its scope is only" "explanation" { target *-*-* } 19 } */
union u; union u;
......
...@@ -5,6 +5,5 @@ ...@@ -5,6 +5,5 @@
void foo(enum E e) {} /* { dg-error "forward ref" "forward" } */ void foo(enum E e) {} /* { dg-error "forward ref" "forward" } */
/* { dg-warning "declared" "declared" { target *-*-* } 6 } */ /* { dg-warning "declared" "declared" { target *-*-* } 6 } */
/* { dg-warning "scope" "scope" { target *-*-* } 6 } */
/* { dg-error "incomplete" "incomplete" { target *-*-* } 6 } */ /* { dg-error "incomplete" "incomplete" { target *-*-* } 6 } */
void bar() { foo(0); } void bar() { foo(0); }
/* PR c/27953 */ /* PR c/27953 */
void foo(struct A a) {} /* { dg-warning "declared inside parameter list" "inside" } */ void foo(struct A a) {} /* { dg-warning "declared inside parameter list" "inside" } */
/* { dg-warning "its scope is only" "scope" { target *-*-* } 3 } */
/* { dg-error "incomplete type" "incomplete" { target *-*-* } 3 } */ /* { dg-error "incomplete type" "incomplete" { target *-*-* } 3 } */
void foo() {} /* { dg-error "redefinition" "redef" } */ void foo() {} /* { dg-error "redefinition" "redef" } */
......
...@@ -10,4 +10,3 @@ void foo11a(int x[sizeof(int *(*)[*])]); /* { dg-warning "not in a declaration" ...@@ -10,4 +10,3 @@ void foo11a(int x[sizeof(int *(*)[*])]); /* { dg-warning "not in a declaration"
void foo11b(__SIZE_TYPE__ x, int y[(__UINTPTR_TYPE__)(int (*)[*])x]); /* { dg-warning "not in a declaration" } */ void foo11b(__SIZE_TYPE__ x, int y[(__UINTPTR_TYPE__)(int (*)[*])x]); /* { dg-warning "not in a declaration" } */
void foo11c(struct s { int (*x)[*]; } *y); /* { dg-error "a member of a structure or union cannot have a variably modified type" "variably modified" } */ void foo11c(struct s { int (*x)[*]; } *y); /* { dg-error "a member of a structure or union cannot have a variably modified type" "variably modified" } */
/* { dg-warning "'struct s' declared inside parameter list" "struct decl" { target *-*-* } 11 } */ /* { dg-warning "'struct s' declared inside parameter list" "struct decl" { target *-*-* } 11 } */
/* { dg-warning "its scope is only this definition or declaration" "struct scope" { target *-*-* } 11 } */
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