diff options
author | Marek Polacek <polacek@redhat.com> | 2018-06-07 19:15:45 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2018-06-07 19:15:45 +0000 |
commit | e4d44a372485acd8c0aca706221f1bfb880ce6f3 (patch) | |
tree | e03aea2a8b2f06496434aa1035a5b292b877c99a /gcc | |
parent | a3e87f07f3dc36bd42ed82853429d64a4b5b9703 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/c/c-decl.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/Wc90-c99-compat-10.c | 12 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/Wc90-c99-compat-11.c | 12 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/Wc90-c99-compat-12.c | 12 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/Wc90-c99-compat-9.c | 12 |
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); +} |