[Bug rtl-optimization/36111] [4.4 Regression] GCC 4.4.0-20080501 failed to compile openmpi's malloc.c file.

rguenth at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Sat May 3 09:50:00 GMT 2008



------- 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



More information about the Gcc-bugs mailing list