[Bug middle-end/49671] New: volatile goes missing after inlining
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jul 7 21:39:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49671
Summary: volatile goes missing after inlining
Product: gcc
Version: 4.7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: pinskia@gcc.gnu.org
Take:
volatile int t;
static inline int cvmx_atomic_get32(volatile int *ptr)
{
return *ptr;
}
void f(void)
{
while (!cvmx_atomic_get32(&t))
;
}
Nothing fancy but after inlining, we have:
D.2699_5 = t;
Which is wrong as t is volatile
More information about the Gcc-bugs
mailing list