diff options
author | Jason Merrill <jason@yorick.cygnus.com> | 1998-04-02 17:05:40 +0000 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 1998-04-02 12:05:40 -0500 |
commit | 0b41abe6683830ae22978f43f085a59094f5b062 (patch) | |
tree | f67814ae050184ae320900c9fcd616df3f0aede9 /gcc/cp/decl.c | |
parent | c098677bed45c310170a0bc8b6056b78c6cc6b9b (diff) | |
download | gcc-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.c | 37 |
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) |