aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/decl2.c
diff options
context:
space:
mode:
authorZack Weinberg <zack@codesourcery.com>2002-11-02 02:17:41 +0000
committerZack Weinberg <zack@gcc.gnu.org>2002-11-02 02:17:41 +0000
commit04d57dd504394cbdc94281c244bb2c1f1fda8a91 (patch)
tree42b0a17506b8b37f0d7d50420e1402075faa74f3 /gcc/cp/decl2.c
parent46be79e78967a0dea39910f0703c0c439748b2a5 (diff)
downloadgcc-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.c8
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)