aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2002-04-24 15:26:10 -0700
committerRichard Henderson <rth@gcc.gnu.org>2002-04-24 15:26:10 -0700
commit2d1b5436c8c77c8461ad514133db3a400fe83d13 (patch)
tree1cbecc14650e6c8a4519df95cf7416b13f37534e
parent64cdc38350d29ed0e2d5fa0b4bdd074ec69135dd (diff)
downloadgcc-2d1b5436c8c77c8461ad514133db3a400fe83d13.zip
gcc-2d1b5436c8c77c8461ad514133db3a400fe83d13.tar.gz
gcc-2d1b5436c8c77c8461ad514133db3a400fe83d13.tar.bz2
c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays for c99.
* c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays for c99. * gcc.dg/c90-vla-1.c, gcc.dg/c99-vla-1.c: New. From-SVN: r52738
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/c-decl.c2
-rw-r--r--gcc/testsuite/gcc.dg/c90-vla-1.c12
-rw-r--r--gcc/testsuite/gcc.dg/c99-vla-1.c12
4 files changed, 31 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 23175ed..28484bd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2002-04-24 Richard Henderson <rth@redhat.com>
+
+ PR c/3467
+ * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
+ for c99.
+
Wed Apr 24 21:51:54 2002 J"orn Rennecke <joern.rennecke@superh.com>
* sh.c (sh_va_arg): If argument was passed by reference,
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index 71ece88..fed2e50 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -4381,7 +4381,7 @@ grokdeclarator (declarator, declspecs, decl_context, initialized)
even if it is (eg) a const variable with known value. */
size_varies = 1;
- if (pedantic)
+ if (!flag_isoc99 && pedantic)
{
if (TREE_CONSTANT (size))
pedwarn ("ISO C89 forbids array `%s' whose size can't be evaluated",
diff --git a/gcc/testsuite/gcc.dg/c90-vla-1.c b/gcc/testsuite/gcc.dg/c90-vla-1.c
new file mode 100644
index 0000000..c8c93c7
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c90-vla-1.c
@@ -0,0 +1,12 @@
+/* Origin: PR 3467 */
+/* { dg-do compile } */
+/* { dg-options "-std=iso9899:1990 -pedantic-errors" } */
+
+void
+tdef (int n)
+{
+ typedef int A[n]; /* { dg-error "forbids variable-size array" } */
+ A a;
+ A *p;
+ p = &a;
+}
diff --git a/gcc/testsuite/gcc.dg/c99-vla-1.c b/gcc/testsuite/gcc.dg/c99-vla-1.c
new file mode 100644
index 0000000..0378ce3
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c99-vla-1.c
@@ -0,0 +1,12 @@
+/* Origin: PR 3467 */
+/* { dg-do compile } */
+/* { dg-options "-std=iso9899:1999 -pedantic-errors" } */
+
+void
+tdef (int n)
+{
+ typedef int A[n]; /* { dg-bogus "forbids variable-size array" } */
+ A a;
+ A *p;
+ p = &a;
+}