On Wed, Oct 5, 2011 at 6:53 PM, Diego Novillo <dnovi...@google.com> wrote: > 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.
Hm, nothing is ignored for me with gcc 4.6. > > Diego. >