------- Comment #3 from rguenth at gcc dot gnu dot org 2008-05-03 09:50 ------- Confirmed. Reduced testcase that fails with -O2 -fPIC:
typedef struct { volatile unsigned int lock; int pad0_; } mutex_t; struct malloc_state { mutex_t mutex; }; static struct malloc_state main_arena; static __inline__ void mutex_lock(mutex_t *m) { int r; for(;;) __asm__ __volatile__ ("xchgl %0, %1" : "=r"(r), "=m"(m->lock) : "0"(1), "m"(m->lock) : "memory"); } void __malloc_check_init() { mutex_lock(&main_arena.mutex); } 4.3.0 seems to work (yes, with checking enabled). -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hubicka at gcc dot gnu dot | |org Component|inline-asm |rtl-optimization Keywords| |ice-on-valid-code Known to work| |4.3.0 Last reconfirmed|0000-00-00 00:00:00 |2008-05-03 09:50:05 date| | Summary|GCC 4.4.0-20080501 failed to|[4.4 Regression] GCC 4.4.0- |compile openmpi's malloc.c |20080501 failed to compile |file. |openmpi's malloc.c file. Target Milestone|--- |4.4.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36111