On Wed, Oct 5, 2011 at 11:28, Diego Novillo <dnovi...@google.com> wrote:
> On Wed, Oct 5, 2011 at 10:51, Richard Guenther
> <richard.guent...@gmail.com> wrote:
>
>> Did you also mark the function with always_inline?  That's a requirement
>> as artificial only works for inlined function bodies.
>
> Yeah.  It doesn't quite work as I expect it to.  It steps into the
> function at odd places.

So, I played with this some more with this, and there seems to be some
inconsistency in how these attributes get handled.
http://sourceware.org/bugzilla/show_bug.cgi?id=13263

static inline int foo (int) __attribute__((always_inline,artificial));

static inline int foo (int x)
{
  int y  = x - 3;
  return y;
}

int bar (int y)
{
  return y == 0;
}

main ()
{
  foo (10);
  return bar (foo (3));
}

With GCC 4.7, the stand alone call foo(10) is not ignored by 'step'.
However, the embedded call bar(foo(3)) is ignored as I was expecting.


Diego.

Reply via email to