Hi This piece of invalid code (the dereference shouldn't be there) triggers an ICE. The crash happens on 4.3.2, 4.4.1 and 4.4.2. It happens with or without optimizations.
static void MONITOR(void *ptr) { __asm__ volatile (" \n\ XORL %%ECX, %%ECX \n\ XORL %%EDX, %%EDX \n\ MONITOR \n\ "::"a"(*ptr):"cx","dx","cc","memory"); } s.e: In function 'MONITOR': s.e:7: warning: dereferencing 'void *' pointer s.e:7: internal compiler error: in gimplify_expr, at gimplify.c:7074 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. -- Summary: ICE on invalid dereferencing of void * Product: gcc Version: 4.4.1 Status: UNCONFIRMED Severity: minor Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: mikulas at artax dot karlin dot mff dot cuni dot cz GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41992