]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR c/31673 ("`for' loop initial declaration used outside C99 mode" is confusing)
authorManuel López-Ibáñez <manu@gcc.gnu.org>
Wed, 27 Aug 2008 23:54:36 +0000 (23:54 +0000)
committerManuel López-Ibáñez <manu@gcc.gnu.org>
Wed, 27 Aug 2008 23:54:36 +0000 (23:54 +0000)
2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

PR c/31673
* c-decl.c (check_for_loop_decls): Improve error message. Give
hint.
testsuite/
* gcc.dg/c90-fordecl-1.c: Update.

From-SVN: r139681

gcc/ChangeLog
gcc/c-decl.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/c90-fordecl-1.c

index d091380e3e8f4f1b4dcf8361bcb3fe95aba8221e..63b1981daae6da0e6eaee483f45deca259cae5a3 100644 (file)
@@ -1,3 +1,9 @@
+2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       PR c/31673
+       * c-decl.c (check_for_loop_decls): Improve error message. Give
+       hint.
+
 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
 
        PR c/37186
index 056cb3860584aeb5ca11f3960f134ec392e63cb6..ee04d9aa43b48ee5caedc862ef69859d8ec92c55 100644 (file)
@@ -6796,13 +6796,19 @@ check_for_loop_decls (void)
   tree one_decl = NULL_TREE;
   int n_decls = 0;
 
-
   if (!flag_isoc99)
     {
+      static bool hint = true;
       /* If we get here, declarations have been used in a for loop without
         the C99 for loop scope.  This doesn't make much sense, so don't
         allow it.  */
-      error ("%<for%> loop initial declaration used outside C99 mode");
+      error ("%<for%> loop initial declarations are only allowed in C99 mode");
+      if (hint)
+       {
+         inform (input_location, 
+                 "use option -std=c99 or -std=gnu99 to compile your code");
+         hint = false;
+       }
       return NULL_TREE;
     }
   /* C99 subclause 6.8.5 paragraph 3:
index 9fad734ca661ca26495f1fc9b36d2aae0d559f43..d5d73d74a0c186282140aa8ce76ba1f4a6547b59 100644 (file)
@@ -1,3 +1,8 @@
+2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       PR c/31673
+       * gcc.dg/c90-fordecl-1.c: Update.
+
 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
 
        PR c/37186
index 8e48dd61752de006a70ffe62a894fe2d84fdf3ca..4aa3c5830229fbe819ecd21c9d162d5b952e8c84 100644 (file)
@@ -9,5 +9,6 @@ foo (void)
   int j = 0;
   for (int i = 1; i <= 10; i++) /* { dg-bogus "warning" "warning in place of error" } */
     j += i;
-  /* { dg-error "parse|decl" "declaration in for loop" { target *-*-* } 10 } */
+  /* { dg-error "'for' loop initial declarations are only allowed in C99 mode" "declaration in for loop" { target *-*-* } 10 } */
+  /* { dg-message "note: use option -std=c99 or -std=gnu99 to compile your code" "note" { target *-*-* } 10 }} */
 }