Commit 09191b7e by Jan Hubicka Committed by Jan Hubicka

decl2.c (finish_objects): Do not call target constructor/destructor bits dirrectly.


	* cp/decl2.c (finish_objects): Do not call target constructor/destructor
	bits dirrectly.

From-SVN: r124062
parent c90533c6
2007-04-23 Jan Hubicka <jh@suse.cz>
* cp/decl2.c (finish_objects): Do not call target constructor/destructor
bits dirrectly.
2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com> 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
* cp-tree.h (lang_tree_node): Use GENERIC_NEXT * cp-tree.h (lang_tree_node): Use GENERIC_NEXT
......
...@@ -2363,23 +2363,19 @@ finish_objects (int method_type, int initp, tree body) ...@@ -2363,23 +2363,19 @@ finish_objects (int method_type, int initp, tree body)
/* Finish up. */ /* Finish up. */
finish_compound_stmt (body); finish_compound_stmt (body);
fn = finish_function (0); fn = finish_function (0);
expand_or_defer_fn (fn);
/* When only doing semantic analysis, and no RTL generation, we
can't call functions that directly emit assembly code; there is
no assembly file in which to put the code. */
if (flag_syntax_only)
return;
if (targetm.have_ctors_dtors)
{
rtx fnsym = XEXP (DECL_RTL (fn), 0);
cgraph_mark_needed_node (cgraph_node (fn));
if (method_type == 'I') if (method_type == 'I')
(* targetm.asm_out.constructor) (fnsym, initp); {
DECL_STATIC_CONSTRUCTOR (fn) = 1;
decl_init_priority_insert (fn, initp);
}
else else
(* targetm.asm_out.destructor) (fnsym, initp); {
DECL_STATIC_DESTRUCTOR (fn) = 1;
decl_fini_priority_insert (fn, initp);
} }
expand_or_defer_fn (fn);
} }
/* The names of the parameters to the function created to handle /* The names of the parameters to the function created to handle
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment