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
This commit is contained in:
parent
a3e87f07f3
commit
e4d44a3724
7 changed files with 66 additions and 0 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
12
gcc/testsuite/gcc.dg/Wc90-c99-compat-10.c
Normal file
12
gcc/testsuite/gcc.dg/Wc90-c99-compat-10.c
Normal file
|
@ -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);
|
||||
}
|
12
gcc/testsuite/gcc.dg/Wc90-c99-compat-11.c
Normal file
12
gcc/testsuite/gcc.dg/Wc90-c99-compat-11.c
Normal file
|
@ -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);
|
||||
}
|
12
gcc/testsuite/gcc.dg/Wc90-c99-compat-12.c
Normal file
12
gcc/testsuite/gcc.dg/Wc90-c99-compat-12.c
Normal file
|
@ -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);
|
||||
}
|
12
gcc/testsuite/gcc.dg/Wc90-c99-compat-9.c
Normal file
12
gcc/testsuite/gcc.dg/Wc90-c99-compat-9.c
Normal file
|
@ -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);
|
||||
}
|
Loading…
Add table
Reference in a new issue