c-decl.c (get_parm_info): Remove static var.
authorLuis Felipe Strano Moraes <luis.strano@gmail.com>
Mon, 27 Jul 2015 22:26:34 +0000 (22:26 +0000)
committerManuel López-Ibáñez <manu@gcc.gnu.org>
Mon, 27 Jul 2015 22:26:34 +0000 (22:26 +0000)
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

gcc/c/ChangeLog
gcc/c/c-decl.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/parm-incomplete-1.c
gcc/testsuite/gcc.dg/pr18809-1.c
gcc/testsuite/gcc.dg/pr27953.c
gcc/testsuite/gcc.dg/vla-11.c

index 08d62460768770fe1eac64e18a65085dca48d9b9..708d3bf69be64c0d28deffd3e987875d5f8cffe7 100644 (file)
@@ -1,3 +1,9 @@
+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>
 
        PR c++/66555
index 8b02877c72277763f7149f3ab66c1c082df6224f..2669764cc0adf1568dcf3ed205a6e0b4f73c1b8a 100644 (file)
@@ -6897,7 +6897,6 @@ get_parm_info (bool ellipsis, tree expr)
   tree types    = 0;
   tree others   = 0;
 
-  static bool explained_incomplete_types = false;
   bool gave_void_only_once_err = false;
 
   arg_info->had_vla_unspec = current_scope->had_vla_unspec;
@@ -7000,19 +6999,16 @@ get_parm_info (bool ellipsis, tree expr)
            {
              if (b->id)
                /* The %s will be one of 'struct', 'union', or 'enum'.  */
-               warning (0, "%<%s %E%> declared inside parameter list",
-                        keyword, b->id);
+               warning_at (input_location, 0,
+                           "%<%s %E%> declared inside parameter list"
+                           " will not be visible outside of this definition or"
+                           " declaration", keyword, b->id);
              else
                /* The %s will be one of 'struct', 'union', or 'enum'.  */
-               warning (0, "anonymous %s declared inside parameter list",
-                        keyword);
-
-             if (!explained_incomplete_types)
-               {
-                 warning (0, "its scope is only this definition or declaration,"
-                          " which is probably not what you want");
-                 explained_incomplete_types = true;
-               }
+               warning_at (input_location, 0,
+                           "anonymous %s declared inside parameter list"
+                           " will not be visible outside of this definition or"
+                           " declaration", keyword);
            }
 
          tag.id = b->id;
index d8095407230abb16a1b79691324a6c0b5cfc2619..fcf7a549f22be5ebe25e7401c5e49dad2d375698 100644 (file)
@@ -1,3 +1,11 @@
+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>
 
        * c-c++-common/Wtautological-compare-2.c: Remove unused line.
index 83dca8253fc0ba29d437c8ce2904b7cc1e36af3b..02d97b933f42df8455c6059e8b8e9f3dbf17988d 100644 (file)
@@ -17,7 +17,6 @@ struct s { int b; };
 void h (struct s x) { }
 
 void j(struct t2); /* { dg-warning "'struct t2' declared inside parameter list" } */
-/* { dg-warning "its scope is only" "explanation" { target *-*-* } 19 } */
 
 union u;
 
index 3b6e8cc1852de09a8310ee78c81c66f989b3f837..a1f552b9f38b96b269941736ff655d2516d5ec3b 100644 (file)
@@ -5,6 +5,5 @@
 
 void foo(enum E e) {}   /* { dg-error "forward ref" "forward" } */
                        /* { dg-warning "declared" "declared" { target *-*-* } 6 } */
-                       /* { dg-warning "scope" "scope" { target *-*-* } 6 } */
                        /* { dg-error "incomplete" "incomplete" { target *-*-* } 6 } */
 void bar() { foo(0); }
index 8da92c1d3e2c48dcd422af63f862ef09cdbd7f83..d4d559e54f74cb79e62403c1662fa07124d2c389 100644 (file)
@@ -1,7 +1,6 @@
 /* PR c/27953 */
 
 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 } */
 
 void foo() {}            /* { dg-error "redefinition" "redef" } */
index 9c23e860a531722e4a3c6253033af30b69fac178..7db34421ea019d16fa7eb64bc48bab00bd038c39 100644 (file)
@@ -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 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 "its scope is only this definition or declaration" "struct scope" { target *-*-* } 11 } */