This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/34483] wo_prof_two_strs.c:56: internal compiler error: in find_new_var_of_type, at ipa-struct-reorg.c:605
- From: "dominiq at lps dot ens dot fr" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 22 Jan 2008 23:25:19 -0000
- Subject: [Bug middle-end/34483] wo_prof_two_strs.c:56: internal compiler error: in find_new_var_of_type, at ipa-struct-reorg.c:605
- References: <bug-34483-276@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #52 from dominiq at lps dot ens dot fr 2008-01-22 23:25 -------
> You mean does not, right?
Yes indeed! sorry for skipping the negation. The assembly follows. Comparing it
to the assembly for wo_prof_mult_field_peeling_db.c in comment #35, the
striking difference is that the latter (working) call L_malloc$stub, while the
former call _malloc. I have very little knowledge about the $stub and friends
suffices, but if I remember correctly what I have read, the Darwin libraries
have both symbols, but one should use the "decorated" one(s). Also the stuff
following ".picsymbol_stub" in the working assembly is missing in the non
working assembly.
.text
.align 4,0x90
.globl _main
_main:
LFB5:
pushq %rbp
LCFI0:
movl $1600, %edi
movq %rsp, %rbp
LCFI1:
call _malloc
movl $400, %edi
call _malloc
movl $400, %edi
call _malloc
movl $400, %edi
call _malloc
movl $400, %edi
call _malloc
xorl %edx, %edx
cltq
.align 4,0x90
L2:
movl $5, (%rax,%rdx,4)
addq $1, %rdx
cmpq $100, %rdx
jne L2
xorb %dl, %dl
jmp L4
.align 4,0x90
L3:
addq $1, %rdx
cmpq $100, %rdx
je L9
L4:
cmpl $5, (%rax,%rdx,4)
je L3
call _abort
L9:
xorl %eax, %eax
leave
ret
LFE5:
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
EH_frame1:
.set L$set$0,LECIE1-LSCIE1
.long L$set$0
LSCIE1:
.long 0x0
.byte 0x1
.ascii "zR\0"
.byte 0x1
.byte 0x78
.byte 0x10
.byte 0x1
.byte 0x10
.byte 0xc
.byte 0x7
.byte 0x8
.byte 0x90
.byte 0x1
.align 3
LECIE1:
.globl _main.eh
_main.eh:
LSFDE1:
.set L$set$1,LEFDE1-LASFDE1
.long L$set$1
LASFDE1:
.long LASFDE1-EH_frame1
.quad LFB5-.
.set L$set$2,LFE5-LFB5
.quad L$set$2
.byte 0x0
.byte 0x4
.set L$set$3,LCFI0-LFB5
.long L$set$3
.byte 0xe
.byte 0x10
.byte 0x86
.byte 0x2
.byte 0x4
.set L$set$4,LCFI1-LCFI0
.long L$set$4
.byte 0xd
.byte 0x6
.align 3
LEFDE1:
.subsections_via_symbols
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34483