aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2018-06-07 19:15:45 +0000
committerMarek Polacek <mpolacek@gcc.gnu.org>2018-06-07 19:15:45 +0000
commite4d44a372485acd8c0aca706221f1bfb880ce6f3 (patch)
treee03aea2a8b2f06496434aa1035a5b292b877c99a /gcc
parenta3e87f07f3dc36bd42ed82853429d64a4b5b9703 (diff)
downloadgcc-e4d44a372485acd8c0aca706221f1bfb880ce6f3.zip
gcc-e4d44a372485acd8c0aca706221f1bfb880ce6f3.tar.gz
gcc-e4d44a372485acd8c0aca706221f1bfb880ce6f3.tar.bz2
re PR c/85318 (-Wc90-c99-compat does not warn about for loop initial declarations)
PR c/85318 * c-decl.c (check_for_loop_decls): Add -Wc90-c99-compat warning about for loop initial declarations. * gcc.dg/Wc90-c99-compat-10.c: New test. * gcc.dg/Wc90-c99-compat-11.c: New test. * gcc.dg/Wc90-c99-compat-12.c: New test. * gcc.dg/Wc90-c99-compat-9.c: New test. From-SVN: r261293
Diffstat (limited to 'gcc')
-rw-r--r--gcc/c/ChangeLog6
-rw-r--r--gcc/c/c-decl.c4
-rw-r--r--gcc/testsuite/ChangeLog8
-rw-r--r--gcc/testsuite/gcc.dg/Wc90-c99-compat-10.c12
-rw-r--r--gcc/testsuite/gcc.dg/Wc90-c99-compat-11.c12
-rw-r--r--gcc/testsuite/gcc.dg/Wc90-c99-compat-12.c12
-rw-r--r--gcc/testsuite/gcc.dg/Wc90-c99-compat-9.c12
7 files changed, 66 insertions, 0 deletions
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index 1be683d..fa9dca0 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -1,3 +1,9 @@
+2018-06-07 Marek Polacek <polacek@redhat.com>
+
+ PR c/85318
+ * c-decl.c (check_for_loop_decls): Add -Wc90-c99-compat warning about
+ for loop initial declarations.
+
2018-05-30 David Pagan <dave.pagan@oracle.com>
PR c/55976
diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c
index 54f58a5..af16cfd 100644
--- a/gcc/c/c-decl.c
+++ b/gcc/c/c-decl.c
@@ -9608,6 +9608,10 @@ check_for_loop_decls (location_t loc, bool turn_off_iso_c99_error)
}
return NULL_TREE;
}
+ else
+ pedwarn_c90 (loc, OPT_Wpedantic, "ISO C90 does not support %<for%> loop "
+ "initial declarations");
+
/* C99 subclause 6.8.5 paragraph 3:
[#3] The declaration part of a for statement shall only
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 272cb03..fffbf91 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2018-06-07 Marek Polacek <polacek@redhat.com>
+
+ PR c/85318
+ * gcc.dg/Wc90-c99-compat-10.c: New test.
+ * gcc.dg/Wc90-c99-compat-11.c: New test.
+ * gcc.dg/Wc90-c99-compat-12.c: New test.
+ * gcc.dg/Wc90-c99-compat-9.c: New test.
+
2018-06-07 Paul Koning <ni1d@arrl.net>
* gcc.c-torture/compile/20180605-1.c: New test.
diff --git a/gcc/testsuite/gcc.dg/Wc90-c99-compat-10.c b/gcc/testsuite/gcc.dg/Wc90-c99-compat-10.c
new file mode 100644
index 0000000..c419ec5
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/Wc90-c99-compat-10.c
@@ -0,0 +1,12 @@
+/* PR c/85318 */
+/* { dg-do compile } */
+/* { dg-options "-std=gnu11 -Wc90-c99-compat -pedantic-errors" } */
+
+extern void bar (int);
+
+void
+foo (int n)
+{
+ for (int i = 0; i < n; i++) /* { dg-warning "ISO C90 does not support .for. loop" } */
+ bar (i);
+}
diff --git a/gcc/testsuite/gcc.dg/Wc90-c99-compat-11.c b/gcc/testsuite/gcc.dg/Wc90-c99-compat-11.c
new file mode 100644
index 0000000..12f9d27
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/Wc90-c99-compat-11.c
@@ -0,0 +1,12 @@
+/* PR c/85318 */
+/* { dg-do compile } */
+/* { dg-options "-std=gnu11 -Wc90-c99-compat -Wno-pedantic" } */
+
+extern void bar (int);
+
+void
+foo (int n)
+{
+ for (int i = 0; i < n; i++) /* { dg-warning "ISO C90 does not support .for. loop" } */
+ bar (i);
+}
diff --git a/gcc/testsuite/gcc.dg/Wc90-c99-compat-12.c b/gcc/testsuite/gcc.dg/Wc90-c99-compat-12.c
new file mode 100644
index 0000000..37f2e85
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/Wc90-c99-compat-12.c
@@ -0,0 +1,12 @@
+/* PR c/85318 */
+/* { dg-do compile } */
+/* { dg-options "-Wpedantic" } */
+
+extern void bar (int);
+
+void
+foo (int n)
+{
+ for (int i = 0; i < n; i++) /* { dg-bogus "ISO C90 does not support .for. loop" } */
+ bar (i);
+}
diff --git a/gcc/testsuite/gcc.dg/Wc90-c99-compat-9.c b/gcc/testsuite/gcc.dg/Wc90-c99-compat-9.c
new file mode 100644
index 0000000..8bd996c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/Wc90-c99-compat-9.c
@@ -0,0 +1,12 @@
+/* PR c/85318 */
+/* { dg-do compile } */
+/* { dg-options "-std=gnu99 -Wc90-c99-compat -pedantic-errors" } */
+
+extern void bar (int);
+
+void
+foo (int n)
+{
+ for (int i = 0; i < n; i++) /* { dg-warning "ISO C90 does not support .for. loop" } */
+ bar (i);
+}