diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 8ab8698378b..9ba17c8bc31 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,10 @@ +2013-09-08 Caroline Tice + + PR c++/58300 + * vtable-class-hierarchy.c (vtv_generate_init_routine): In + preinit case, move call to assemble_vtv_preinit_initializer to + after call to cgraph_process_new_functions. + 2013-09-08 Tom de Vries PR c++/58282 diff --git a/gcc/cp/vtable-class-hierarchy.c b/gcc/cp/vtable-class-hierarchy.c index 276fa1f9966..78611a83264 100644 --- a/gcc/cp/vtable-class-hierarchy.c +++ b/gcc/cp/vtable-class-hierarchy.c @@ -1179,15 +1179,16 @@ vtv_generate_init_routine (void) TREE_USED (vtv_fndecl) = 1; DECL_PRESERVE_P (vtv_fndecl) = 1; if (flag_vtable_verify == VTV_PREINIT_PRIORITY) - { - DECL_STATIC_CONSTRUCTOR (vtv_fndecl) = 0; - assemble_vtv_preinit_initializer (vtv_fndecl); - } + DECL_STATIC_CONSTRUCTOR (vtv_fndecl) = 0; gimplify_function_tree (vtv_fndecl); cgraph_add_new_function (vtv_fndecl, false); cgraph_process_new_functions (); + + if (flag_vtable_verify == VTV_PREINIT_PRIORITY) + assemble_vtv_preinit_initializer (vtv_fndecl); + } pop_lang_context (); }