[Bug c/48623] gcc 4.6.0 generates no code for a function with __attribute__((always_inline))
matz at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Apr 15 22:04:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48623
Michael Matz <matz at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|WAITING |RESOLVED
CC| |matz at gcc dot gnu.org
Resolution| |INVALID
--- Comment #10 from Michael Matz <matz at gcc dot gnu.org> 2011-04-15 22:03:05 UTC ---
You didn't change the current_thread_info carefully enough as per
comment #3. It still reads:
static inline __attribute__((always_inline)) struct thread_info
*current_thread_info(void)
{
struct thread_info *ti;
void *p;
unsigned long mask = ((1 << 0) * ((1UL) << 12)) - 1;
asm volatile ("" : "=r" (p) : "0" (&ti));
ti = (struct thread_info *) (((unsigned long) &ti) & ~mask);
return ti;
}
You have to make use of 'p' of course. Your return value still is based
on &ti.
More information about the Gcc-bugs
mailing list