diff options
author | Zack Weinberg <zack@codesourcery.com> | 2002-11-02 02:17:41 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2002-11-02 02:17:41 +0000 |
commit | 04d57dd504394cbdc94281c244bb2c1f1fda8a91 (patch) | |
tree | 42b0a17506b8b37f0d7d50420e1402075faa74f3 /gcc/cp/decl2.c | |
parent | 46be79e78967a0dea39910f0703c0c439748b2a5 (diff) | |
download | gcc-04d57dd504394cbdc94281c244bb2c1f1fda8a91.zip gcc-04d57dd504394cbdc94281c244bb2c1f1fda8a91.tar.gz gcc-04d57dd504394cbdc94281c244bb2c1f1fda8a91.tar.bz2 |
PR c/7353 redux
PR c/7353 redux
cp:
* decl2.c (grokfield): Reject TYPE_DECLs with initializers.
testsuite:
* g++.dg/ext/typedef-init.C, gcc.dg/typedef-init.C:
Add some more cases.
From-SVN: r58737
Diffstat (limited to 'gcc/cp/decl2.c')
-rw-r--r-- | gcc/cp/decl2.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index 9461174..93b643f7 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -915,7 +915,13 @@ grokfield (declarator, declspecs, init, asmspec_tree, attrlist) /* friend or constructor went bad. */ return value; if (TREE_TYPE (value) == error_mark_node) - return error_mark_node; + return error_mark_node; + + if (TREE_CODE (value) == TYPE_DECL && init) + { + error ("typedef `%D' is initialized (use __typeof__ instead)", value); + init = NULL_TREE; + } /* Pass friendly classes back. */ if (TREE_CODE (value) == VOID_TYPE) |