s390x fails to build the linux kernel

./cc1 -quiet -O smp.3.i

Program received signal SIGSEGV, Segmentation fault.
0x00000000008276f4 in subst_reloads (insn=0x7fc1f2451a00)
    at /space/rguenther/src/svn/trunk/gcc/reload.c:6181
6181              gcc_assert (GET_CODE (*r->where) != LABEL_REF
(gdb) print *r->where
$1 = (rtx) 0x2b


testcase:

typedef unsigned char __u8;
typedef unsigned int __u32;
typedef unsigned long __u64;
struct _lowcore {
    __u8 pad8[0xc00-0x2a0];
    __u64 save_area[16];
    __u8 pad9[0xd40-0xc80];
    __u64 thread_info;
    __u64 ext_call_fast;
    __u8 pad13[0x1200-0xe04];
    __u64 floating_pt_save_area[16];
    __u64 gpregs_save_area[16];
    __u32 st_status_fixed_logout[4];
    __u32 access_regs_save_area[16];
    __u64 cregs_save_area[16];
};
int __cpu_up(unsigned int cpu)
{
    struct _lowcore *cpu_lowcore;
    typedef struct {
        char _[sizeof(cpu_lowcore->cregs_save_area[0])];
    } addrtype;
    asm volatile( "stctg %2,%3,0(%1)\n"
                  : "=m" (*(addrtype *)(cpu_lowcore->cregs_save_area[0]))
                  : "a" (&cpu_lowcore->cregs_save_area[0]), "i" (0), "i" (15));
}


-- 
           Summary: [4.4 Regression] ICE in subst_reloads
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rguenth at gcc dot gnu dot org
GCC target triplet: s390x-*-*


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36822

Reply via email to