aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/decl.c
diff options
context:
space:
mode:
authorJason Merrill <jason@yorick.cygnus.com>1998-04-02 17:05:40 +0000
committerJason Merrill <jason@gcc.gnu.org>1998-04-02 12:05:40 -0500
commit0b41abe6683830ae22978f43f085a59094f5b062 (patch)
treef67814ae050184ae320900c9fcd616df3f0aede9 /gcc/cp/decl.c
parentc098677bed45c310170a0bc8b6056b78c6cc6b9b (diff)
downloadgcc-0b41abe6683830ae22978f43f085a59094f5b062.zip
gcc-0b41abe6683830ae22978f43f085a59094f5b062.tar.gz
gcc-0b41abe6683830ae22978f43f085a59094f5b062.tar.bz2
cp-tree.h: Lose CLASSTYPE_VBASE_SIZE, some unused stuff.
* cp-tree.h: Lose CLASSTYPE_VBASE_SIZE, some unused stuff. * decl.c, decl2.c, pt.c, ptree.c, lex.c: Likewise. * class.c (duplicate_tag_error): Likewise. (finish_struct_1): Set CLASSTYPE_SIZE, CLASSTYPE_MODE, CLASSTYPE_ALIGN. * tree.c (layout_vbasetypes): Update from layout_record, remove var_size support, use CLASSTYPE_SIZE instead of CLASSTYPE_VBASE_SIZE. (layout_basetypes): Likewise. From-SVN: r18965
Diffstat (limited to 'gcc/cp/decl.c')
-rw-r--r--gcc/cp/decl.c37
1 files changed, 14 insertions, 23 deletions
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 6d0e574..3a75da7 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -10372,32 +10372,23 @@ grok_ctor_properties (ctype, decl)
}
if (TREE_CODE (parmtype) == REFERENCE_TYPE
- && TYPE_MAIN_VARIANT (TREE_TYPE (parmtype)) == ctype)
- {
- if (TREE_CHAIN (parmtypes) == NULL_TREE
+ && TYPE_MAIN_VARIANT (TREE_TYPE (parmtype)) == ctype
+ && (TREE_CHAIN (parmtypes) == NULL_TREE
|| TREE_CHAIN (parmtypes) == void_list_node
- || TREE_PURPOSE (TREE_CHAIN (parmtypes)))
- {
- TYPE_HAS_INIT_REF (ctype) = 1;
- if (TYPE_READONLY (TREE_TYPE (parmtype)))
- TYPE_HAS_CONST_INIT_REF (ctype) = 1;
- }
- else
- TYPE_GETS_INIT_AGGR (ctype) = 1;
+ || TREE_PURPOSE (TREE_CHAIN (parmtypes))))
+ {
+ TYPE_HAS_INIT_REF (ctype) = 1;
+ if (TYPE_READONLY (TREE_TYPE (parmtype)))
+ TYPE_HAS_CONST_INIT_REF (ctype) = 1;
}
- else if (TYPE_MAIN_VARIANT (parmtype) == ctype)
+ else if (TYPE_MAIN_VARIANT (parmtype) == ctype
+ && TREE_CHAIN (parmtypes) != NULL_TREE
+ && TREE_CHAIN (parmtypes) == void_list_node)
{
- if (TREE_CHAIN (parmtypes) != NULL_TREE
- && TREE_CHAIN (parmtypes) == void_list_node)
- {
- cp_error ("invalid constructor; you probably meant `%T (const %T&)'",
- ctype, ctype);
- SET_IDENTIFIER_ERROR_LOCUS (DECL_NAME (decl), ctype);
-
- return 0;
- }
- else
- TYPE_GETS_INIT_AGGR (ctype) = 1;
+ cp_error ("invalid constructor; you probably meant `%T (const %T&)'",
+ ctype, ctype);
+ SET_IDENTIFIER_ERROR_LOCUS (DECL_NAME (decl), ctype);
+ return 0;
}
else if (TREE_CODE (parmtype) == VOID_TYPE
|| TREE_PURPOSE (parmtypes) != NULL_TREE)