Occurs while compiling glibc-2.7-20080428 with gcc-4.4-20080411 while building
the shared object for malloc.c.  gcc-4.2.3 works with the identical setup.

$ gcc-4.4-20080411 -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../gcc-4.4-20080411/configure --prefix=/system/devel
--program-suffix=-4.4-20080411 --enable-shared --enable-static
--with-system-zlib --enable-languages=c,c++ --enable-decimal-float --enable-tls
Thread model: posix
gcc version 4.4.0 20080411 (experimental) (GCC)

../glibc-2.7-20080428/configure --prefix=/system/libs --with-tls
--enable-shared --enable-static

$CC = /system/devel/bin/gcc-4.4-20080411 -march=pentium
-mno-tls-direct-seg-refs
$CFLAGS = -O2

Compiler output:
/system/devel/bin/gcc-4.4-20080411 -march=pentium -mno-tls-direct-seg-refs
malloc.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrit
e-strings -fmerge-all-constants -Wstrict-prototypes
-mpreferred-stack-boundary=2  -fPIC -DMORECORE_CLEARS=2   -I../include
-I/usr/src/libs
/glibc/build-glibc-2.7-2008048-borken/malloc
-I/usr/src/libs/glibc/build-glibc-2.7-2008048-borken -I../sysdeps/i386/elf
-I../nptl/sysdeps/
unix/sysv/linux/i386/i686 -I../nptl/sysdeps/unix/sysv/linux/i386
-I../sysdeps/unix/sysv/linux/i386 -I../nptl/sysdeps/unix/sysv/linux -I../
nptl/sysdeps/pthread -I../sysdeps/pthread -I../sysdeps/unix/sysv/linux
-I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I
../sysdeps/unix/inet -I../sysdeps/unix/sysv/i386 -I../nptl/sysdeps/unix/sysv
-I../sysdeps/unix/sysv -I../sysdeps/unix/i386 -I../nptl/sysde
ps/unix -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/i386/i686/fpu
-I../nptl/sysdeps/i386/i686 -I../sysdeps/i386/i686 -I../sysdeps/i3
86/i486 -I../nptl/sysdeps/i386/i486 -I../sysdeps/i386/fpu
-I../nptl/sysdeps/i386 -I../sysdeps/i386 -I../sysdeps/wordsize-32
-I../sysdeps/i
eee754/ldbl-96 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32
-I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic
-I../nptl  -I.. -I../libio -I. -I /lib/modules/2.6.22.6/build/include
-D_LIBC_REENTRANT -include ../include/libc-symbols.h  -DPIC -DSHARED
     -o /usr/src/libs/glibc/build-glibc-2.7-2008048-borken/malloc/malloc.os -MD
-MP -MF /usr/src/libs/glibc/build-glibc-2.7-2008048-borken
/malloc/malloc.os.dt -MT
/usr/src/libs/glibc/build-glibc-2.7-2008048-borken/malloc/malloc.os
malloc.c: In function 'mALLOPt':
malloc.c:5731: error: invalid rtl sharing found in the insn
(insn 131 128 136 24 malloc.c:5729 (parallel [
            (set (mem/s/c:SI (plus:SI (reg:SI 3 bx)
                        (const:SI (unspec:SI [
                                    (symbol_ref:SI ("main_arena") [flags 0x2]
<var_decl 0x40660d10 main_arena>)
                                ] 1))) [3 main_arena.mutex+0 S4 A256])
                (asm_operands/v:SI ("cmpl $0, %%gs:%P3
        je 0f
        lock
0:      subl $1,%0
        jne _L_unlock_%=
        .subsection 1
        .type _L_unlock_%=,@function
_L_unlock_%=:
1:      leal %0, %%eax
2:      call __lll_unlock_wake_private
3:      jmp 18f
4:      .size _L_unlock_%=, 4b-1b
        .previous
.section        .eh_frame,"a",@progbits
5:      .long   7f-6f   # Length of Common Information Entry
6:      .long   0x0     # CIE Identifier Tag
        .byte   0x1     # CIE Version
        .ascii "zR\0"   # CIE Augmentation
        .uleb128 0x1    # CIE Code Alignment Factor
        .sleb128 -4     # CIE Data Alignment Factor
        .byte   0x8     # CIE RA Column
        .uleb128 0x1    # Augmentation size
        .byte   0x1b    # FDE Encoding (pcrel sdata4)
        .byte   0xc     # DW_CFA_def_cfa
        .uleb128 0x4
        .uleb128 0x0
        .align 4
7:      .long   17f-8f  # FDE Length
8:      .long   8b-5b   # FDE CIE offset
        .long   1b-.    # FDE initial location
        .long   4b-1b   # FDE address range
        .uleb128 0x0    # Augmentation size
        .byte   0x16    # DW_CFA_val_expression
        .uleb128 0x8
        .uleb128 10f-9f
9:      .byte   0x78    # DW_OP_breg8
        .sleb128 3b-1b
10:     .byte   0x40 + (2b-1b) # DW_CFA_advance_loc
        .byte   0x16    # DW_CFA_val_expression
        .uleb128 0x8
        .uleb128 12f-11f
11:     .byte   0x78    # DW_OP_breg8
        .sleb128 3b-2b
12:     .byte   0x40 + (3b-2b-1) # DW_CFA_advance_loc
        .byte   0x16    # DW_CFA_val_expression
        .uleb128 0x8
        .uleb128 16f-13f
13:     .byte   0x78    # DW_OP_breg8
        .sleb128 15f-14f
        .byte   0x0d    # DW_OP_const4s
14:     .4byte  3b-.
        .byte   0x1c    # DW_OP_minus
        .byte   0x0d    # DW_OP_const4s
15:     .4byte  18f-.
        .byte   0x22    # DW_OP_plus
16:     .align 4
17:     .previous
18:") ("=m") 0 [
                        (mem/s/c:SI (plus:SI (reg:SI 3 bx)
                                (const:SI (unspec:SI [
                                            (symbol_ref:SI ("main_arena")
[flags 0x2] <var_decl 0x40660d10 main_arena>)
                                        ] 1))) [3 main_arena.mutex+0 S4 A256])
                        (const_int 12 [0xc])
                    ]
                     [
                        (asm_input:SI ("m") 0)
                        (asm_input:SI ("i") 0)
                    ] 7224179))
            (set (reg/v:SI 59 [ ignore ])
                (asm_operands/v:SI ("cmpl $0, %%gs:%P3
        je 0f
        lock
0:      subl $1,%0
        jne _L_unlock_%=
        .subsection 1
        .type _L_unlock_%=,@function
_L_unlock_%=:
1:      leal %0, %%eax
2:      call __lll_unlock_wake_private
3:      jmp 18f
4:      .size _L_unlock_%=, 4b-1b
        .previous
.section        .eh_frame,"a",@progbits
5:      .long   7f-6f   # Length of Common Information Entry
6:      .long   0x0     # CIE Identifier Tag
        .byte   0x1     # CIE Version
        .ascii "zR\0"   # CIE Augmentation
        .uleb128 0x1    # CIE Code Alignment Factor
        .sleb128 -4     # CIE Data Alignment Factor
        .byte   0x8     # CIE RA Column
        .uleb128 0x1    # Augmentation size
        .byte   0x1b    # FDE Encoding (pcrel sdata4)
        .byte   0xc     # DW_CFA_def_cfa
        .uleb128 0x4
        .uleb128 0x0
        .align 4
7:      .long   17f-8f  # FDE Length
8:      .long   8b-5b   # FDE CIE offset
        .long   1b-.    # FDE initial location
        .long   4b-1b   # FDE address range
        .uleb128 0x0    # Augmentation size
        .byte   0x16    # DW_CFA_val_expression
        .uleb128 0x8
        .uleb128 10f-9f
9:      .byte   0x78    # DW_OP_breg8
        .sleb128 3b-1b
10:     .byte   0x40 + (2b-1b) # DW_CFA_advance_loc
        .byte   0x16    # DW_CFA_val_expression
        .uleb128 0x8
        .uleb128 12f-11f
11:     .byte   0x78    # DW_OP_breg8
        .sleb128 3b-2b
12:     .byte   0x40 + (3b-2b-1) # DW_CFA_advance_loc
        .byte   0x16    # DW_CFA_val_expression
        .uleb128 0x8
        .uleb128 16f-13f
13:     .byte   0x78    # DW_OP_breg8
        .sleb128 15f-14f
        .byte   0x0d    # DW_OP_const4s
14:     .4byte  3b-.
        .byte   0x1c    # DW_OP_minus
        .byte   0x0d    # DW_OP_const4s
15:     .4byte  18f-.
        .byte   0x22    # DW_OP_plus
16:     .align 4
17:     .previous
18:") ("=&a") 1 [
                        (mem/s/c:SI (plus:SI (reg:SI 3 bx)
                                (const:SI (unspec:SI [
                                            (symbol_ref:SI ("main_arena")
[flags 0x2] <var_decl 0x40660d10 main_arena>)
                                        ] 1))) [3 main_arena.mutex+0 S4 A256])
                        (const_int 12 [0xc])
                    ]
                     [
                        (asm_input:SI ("m") 0)
                        (asm_input:SI ("i") 0)
                    ] 7224179))
            (clobber (reg:QI 18 fpsr))
            (clobber (reg:QI 17 flags))
            (clobber (mem:BLK (scratch) [0 A8]))
        ]) -1 (expr_list:REG_UNUSED (reg/v:SI 59 [ ignore ])
        (expr_list:REG_UNUSED (reg:QI 18 fpsr)
            (expr_list:REG_UNUSED (reg:QI 17 flags)
                (nil)))))
malloc.c:5731: error: shared rtx
(const:SI (unspec:SI [
            (symbol_ref:SI ("main_arena") [flags 0x2] <var_decl 0x40660d10
main_arena>)
        ] 1))
malloc.c:5731: internal compiler error: internal consistency failure
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make[2]: ***
[/usr/src/libs/glibc/build-glibc-2.7-2008048-borken/malloc/malloc.os] Error 1
make[2]: Leaving directory `/usr/src/libs/glibc/glibc-2.7-20080428/malloc'
make[1]: *** [malloc/subdir_lib] Error 2
make[1]: Leaving directory `/usr/src/libs/glibc/glibc-2.7-20080428'
make: *** [all] Error 2


-- 
           Summary: gcc-4.4-regression: invalid rtl sharing found in the
                    insn
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: steve49152 at yahoo dot ca
  GCC host triplet: i686-pc-linux-gnu


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

Reply via email to