I was wondering if anyone has seen this bug involving LRA and inline
assembly code.  On MIPS, I am getting the attached ICE.  Somehow
the 'first' pointer in the live_reload_and_inheritance_pseudos bitmap
structure is either getting clobbered or is not being correctly
initialized to begin with.  I am not sure which yet.

Steve Ellcey
sell...@mips.com


% cat x.c
int NoBarrier_AtomicIncrement(volatile int* ptr, int increment) {
  int temp, temp2;
  __asm__ __volatile__(".set push\n"
                       ".set noreorder\n"
                       "1:\n"
                       "ll %0, 0(%3)\n"
                       "addu %1, %0, %2\n"
                       "sc %1, 0(%3)\n"
                       "beqz %1, 1b\n"
                       "addu %1, %0, %2\n"
                       ".set pop\n"
                       : "=&r" (temp), "=&r" (temp2)
                       : "Ir" (increment), "r" (ptr)
                       : "memory");
  return temp2;
}

% mips-mti-linux-gnu-gcc -O1 -c x.c
x.c: In function 'NoBarrier_AtomicIncrement':
x.c:16:1: internal compiler error: Segmentation fault
 }
 ^
0x9b199f crash_signal
        /scratch/sellcey/nightly/src/gcc/gcc/toplev.c:339
0x5d3950 bitmap_element_link
        /scratch/sellcey/nightly/src/gcc/gcc/bitmap.c:456
0x5d3950 bitmap_set_bit(bitmap_head*, int)
        /scratch/sellcey/nightly/src/gcc/gcc/bitmap.c:673
0x87c370 init_live_reload_and_inheritance_pseudos
        /scratch/sellcey/nightly/src/gcc/gcc/lra-assigns.c:413
0x87c370 lra_assign()
        /scratch/sellcey/nightly/src/gcc/gcc/lra-assigns.c:1499
0x877966 lra(_IO_FILE*)
        /scratch/sellcey/nightly/src/gcc/gcc/lra.c:2236
0x8337de do_reload
        /scratch/sellcey/nightly/src/gcc/gcc/ira.c:5311
0x8337de execute
        /scratch/sellcey/nightly/src/gcc/gcc/ira.c:5470
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

Reply via email to