File pr33763.diff of Package gcc47

Index: gcc/tree-inline.c
===================================================================
*** gcc/tree-inline.c.orig	2011-11-03 16:27:43.000000000 +0100
--- gcc/tree-inline.c	2011-11-04 11:37:21.000000000 +0100
*************** expand_call_inline (basic_block bb, gimp
*** 3775,3780 ****
--- 3775,3786 ----
  	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
  	  /* PR 20090218-1_0.c. Body can be provided by another module. */
openSUSE Build Service is sponsored by