This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: gcc 3.1 bug: flag_no_inline incorrectly set




--On Saturday, April 27, 2002 10:52:35 PM -0700 "David S. Miller" 
<davem@redhat.com> wrote:

>    From: Anton Blanchard <anton@samba.org>
>    Date: Sun, 28 Apr 2002 15:44:51 +1000
>
>    I was chasing down why -Winline doesnt work with gcc 3.1 and noticed
>    that we were always setting flag_no_inline. With some help from
>    Alan Modra, we narrowed it down to c_common_post_options where
>    the check for flag_instrument_function_entry_exit looks backwards.
>
>  ...
>
> This change looks correct, and I recommend that it be approved for
> both the mainline and 3.1 branch.
>
> Mark?

I don't understand why the code is wrong.  It says:

  /* Use tree inlining if possible.  Function instrumentation is only
     done in the RTL level, so we disable tree inlining.  */
  if (! flag_instrument_function_entry_exit)
    {
      if (!flag_no_inline)
	flag_no_inline = 1;
      if (flag_inline_functions)
	{
	  flag_inline_trees = 2;
	  flag_inline_functions = 0;
	}
    }

That says "if we're not instrumenting function entry/exit, then turn
on flag_inline_trees, at least sometimes."  With the change, if
flag_inline_functions is also true, we'd end up turning on flag_inline_trees
*and* flag_instrument_function_entry_exit, which apparently doens't work,
right?

I'm confused.

--
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]