Commit ba19ceae by Jan Hubicka Committed by Jan Hubicka

re PR middle-end/29241 ([non unit-at-a-time] ICE with always inline)

	PR middle-end/29241
	* cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
	declared always_inline even when not inlining.

	* gcc.c-torture/compile/pr29241.c: New testcase.

From-SVN: r117753
parent 564738df
2006-10-15 Jan Hubicka <jh@suse.cz>
PR middle-end/29241
* cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
declared always_inline even when not inlining.
2006-10-15 Eric Botcazou <ebotcazou@libertysurf.fr>
John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
Andrew Pinski <pinskia@gmail.com>
......
......@@ -1494,7 +1494,9 @@ cgraph_preserve_function_body_p (tree decl)
{
struct cgraph_node *node;
if (!cgraph_global_info_ready)
return (DECL_INLINE (decl) && !flag_really_no_inline);
return (flag_really_no_inline
? lang_hooks.tree_inlining.disregard_inline_limits (decl)
: DECL_INLINE (decl));
/* Look if there is any clone around. */
for (node = cgraph_node (decl); node; node = node->next_clone)
if (node->global.inlined_to)
......
2006-10-15 Jan Hubicka <jh@suse.cz>
PR middle-end/29241
* gcc.c-torture/compile/pr29241.c: New testcase.
2006-10-15 David Edelsohn <edelsohn@gnu.org>
PR middle-end/29250
static inline __attribute__((always_inline)) void ip_finish_output2(){}
void ip_fragment(void (*)(void));
static inline __attribute__((always_inline)) void ip_finish_output()
{
ip_fragment(ip_finish_output2);
ip_finish_output2();
}
void ip_mc_output()
{
ip_finish_output();
}
void ip_output()
{
ip_finish_output();
}
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