File pr33763.diff of Package gcc45
Index: gcc/tree-inline.c
===================================================================
--- gcc/tree-inline.c.orig 2009-11-17 16:17:20.000000000 +0100
+++ gcc/tree-inline.c 2009-11-18 14:59:02.000000000 +0100
@@ -3582,6 +3582,12 @@ expand_call_inline (basic_block bb, gimp
goto egress;
if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn))
+ /* For extern inline functions that get redefined we always
+ silently ignored alway_inline flag. Better behaviour would
+ be to be able to keep both bodies and use extern inline body
+ for inlining, but we can't do that because frontends overwrite
+ the body. */
+ && !cg_edge->callee->local.redefined_extern_inline
/* Avoid warnings during early inline pass. */
&& cgraph_global_info_ready)
{