aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/class.c
diff options
context:
space:
mode:
authorDaniel Jacobowitz <dan@codesourcery.com>2007-11-08 12:48:28 +0000
committerDaniel Jacobowitz <drow@gcc.gnu.org>2007-11-08 12:48:28 +0000
commit8208d7dc3012faadc09726f03363fa9a8f96ff66 (patch)
tree47cc2b29e83533c4fc38f568fda130c3164ebc0e /gcc/cp/class.c
parent0a485bae9f0aa4a2ad5236131113e16a339213db (diff)
downloadgcc-8208d7dc3012faadc09726f03363fa9a8f96ff66.zip
gcc-8208d7dc3012faadc09726f03363fa9a8f96ff66.tar.gz
gcc-8208d7dc3012faadc09726f03363fa9a8f96ff66.tar.bz2
class.c (build_ctor_vtbl_group): Lay out the new type and decl.
* class.c (build_ctor_vtbl_group): Lay out the new type and decl. * g++.dg/opt/anchor1.C: New. From-SVN: r129997
Diffstat (limited to 'gcc/cp/class.c')
-rw-r--r--gcc/cp/class.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index e468db3..6e67157 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -7006,7 +7006,10 @@ build_ctor_vtbl_group (tree binfo, tree t)
/* Figure out the type of the construction vtable. */
type = build_index_type (size_int (list_length (inits) - 1));
type = build_cplus_array_type (vtable_entry_type, type);
+ layout_type (type);
TREE_TYPE (vtbl) = type;
+ DECL_SIZE (vtbl) = DECL_SIZE_UNIT (vtbl) = NULL_TREE;
+ layout_decl (vtbl, 0);
/* Initialize the construction vtable. */
CLASSTYPE_VTABLES (t) = chainon (CLASSTYPE_VTABLES (t), vtbl);