From 6959d4f74b1fb9621092cf9d4c25caebe6569670 Mon Sep 17 00:00:00 2001 From: No Author Date: Wed, 9 Oct 2002 21:31:03 +0000 Subject: [PATCH] This commit was manufactured by cvs2svn to create branch 'gcc-3_2-branch'. From-SVN: r57996 --- gcc/testsuite/g++.dg/ext/typedef-init.C | 14 ++++++++++++++ gcc/testsuite/gcc.dg/typedef-init.c | 9 +++++++++ 2 files changed, 23 insertions(+) create mode 100644 gcc/testsuite/g++.dg/ext/typedef-init.C create mode 100644 gcc/testsuite/gcc.dg/typedef-init.c diff --git a/gcc/testsuite/g++.dg/ext/typedef-init.C b/gcc/testsuite/g++.dg/ext/typedef-init.C new file mode 100644 index 000000000000..5602783b4990 --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/typedef-init.C @@ -0,0 +1,14 @@ +/* { dg-do compile } */ +/* { dg-options "-fpermissive" } // suppress default -pedantic-errors */ + +/* This code used to be a legitimate, if dubious, extension. However, + it's been broken since GCC 3.0 (caused ICE) and we have now removed + the extension. See PR c/7353. + + C++ issues a warning in addition to the error, since this construct + appears to be a case of implicit int (forbidden in std. C++) until + we get to the equals sign. */ + +typedef A = 0; /* { dg-error "initialized" "typedef A = B" } */ + /* { dg-warning "no type" "also warns" { target *-*-* } 12 } */ +A a; /* { dg-bogus "" "no error cascade" } */ diff --git a/gcc/testsuite/gcc.dg/typedef-init.c b/gcc/testsuite/gcc.dg/typedef-init.c new file mode 100644 index 000000000000..9cb4830b74bd --- /dev/null +++ b/gcc/testsuite/gcc.dg/typedef-init.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-options "-std=gnu89" } // suppress default -pedantic-errors */ + +/* This code used to be a legitimate, if dubious, extension. However, + it's been broken since GCC 3.0 (caused ICE) and we have now removed + the extension. See PR c/7353. */ + +typedef A = 0; /* { dg-error "initialized" "typedef A = B" } */ +A a; /* { dg-bogus "" "no error cascade" } */ -- 2.47.2