On Wed, Oct 5, 2011 at 8:51 PM, Diego Novillo <dnovi...@google.com> wrote: > On Wed, Oct 5, 2011 at 14:20, Mike Stump <mikest...@comcast.net> wrote: >> On Oct 5, 2011, at 6:18 AM, Diego Novillo wrote: >>> I think we need to find a solution for this situation. >> >> The solution Apple found and implemented is a __nodebug__ attribute, as can >> be seen in Apple's gcc. >> >> We use it like so: >> >> #define __always_inline__ __always_inline__, __nodebug__ >> #undef __always_inline__ >> >> in headers like mmintrn.h: >> >> __STATIC_INLINE void __attribute__((__always_inline__)) >> /* APPLE LOCAL end radar 5618945 */ >> _mm_empty (void) >> { >> __builtin_ia32_emms (); >> } > > Ah, nice. Though, one of the things I am liking more and more about > the blacklist solution is that it (a) does not need any modifications > to the source code, and (b) it works with no-inline functions as well. > > This gives total control to the developer. I would blacklist a bunch > of functions I never care to go into, for instance. Others may choose > to blacklist a different set. And you can change that from debug > session to the next. > > I agree with Jakub that artificial functions should be blacklisted > automatically, however. > > Richi, Jakub, if the blacklist solution was implemented in GCC would > you agree with promoting these macros into inline functions? This is > orthogonal to http://sourceware.org/bugzilla/show_bug.cgi?id=13263, of > course.
I know you are on to that C++ thing and ending up returning a reference to make it an lvalue. Which I very much don't like (please, if you go that route add _set functions and lower the case of the macros). What's the other advantage of using inline functions? The gdb annoyance with the macros can be solved with the .gdbinit macro defines (which might be nice to commit to SVN btw). Richard. > > Thanks. Diego. >