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.