.file "bug.cpp" .text .align 2 .globl _Z6tester7QString .type _Z6tester7QString,@function _Z6tester7QString: .LFB1: pushl %ebp .LCFI0: movl %esp, %ebp .LCFI1: popl %ebp ret .LFE1: .Lfe1: .size _Z6tester7QString,.Lfe1-_Z6tester7QString .globl _Unwind_Resume .section .rodata .LC0: .string "bug" .LC1: .string "ops: " .text .align 2 .globl main .type main,@function main: .LFB2: pushl %ebp .LCFI2: movl %esp, %ebp .LCFI3: pushl %ebx .LCFI4: subl $52, %esp .LCFI5: andl $-16, %esp movl $0, %eax subl %eax, %esp subl $8, %esp pushl $.LC0 leal -24(%ebp), %eax pushl %eax .LEHB0: .LCFI6: call _ZN7QStringC1EPKc .LEHE0: addl $16, %esp .L3: leal -40(%ebp), %edx subl $4, %esp leal -24(%ebp), %eax pushl %eax pushl $.LC1 pushl %edx .LEHB1: call _ZplPKcRK7QString .LEHE1: addl $12, %esp subl $12, %esp leal -40(%ebp), %eax pushl %eax call _Z6tester7QString addl $16, %esp jmp .L3 .L10: movl %eax, -44(%ebp) movl -44(%ebp), %ebx subl $12, %esp leal -24(%ebp), %eax pushl %eax call _ZN7QStringD1Ev addl $16, %esp movl %ebx, -44(%ebp) subl $12, %esp pushl -44(%ebp) .LEHB2: call _Unwind_Resume .LEHE2: .LFE2: .Lfe2: .size main,.Lfe2-main .section .gcc_except_table,"aw",@progbits .LLSDA2: .byte 0xff .byte 0xff .byte 0x1 .uleb128 .LLSDACSE2-.LLSDACSB2 .LLSDACSB2: .uleb128 .LEHB0-.LFB2 .uleb128 .LEHE0-.LEHB0 .uleb128 0x0 .uleb128 0x0 .uleb128 .LEHB1-.LFB2 .uleb128 .LEHE1-.LEHB1 .uleb128 .L10-.LFB2 .uleb128 0x0 .uleb128 .LEHB2-.LFB2 .uleb128 .LEHE2-.LEHB2 .uleb128 0x0 .uleb128 0x0 .LLSDACSE2: .text .section .gnu.linkonce.t._ZN7QStringD1Ev,"ax",@progbits .align 2 .weak _ZN7QStringD1Ev .type _ZN7QStringD1Ev,@function _ZN7QStringD1Ev: .LFB3: pushl %ebp .LCFI7: movl %esp, %ebp .LCFI8: subl $8, %esp .LCFI9: subl $12, %esp movl 8(%ebp), %eax pushl (%eax) .LCFI10: call _ZN7QShared5derefEv addl $16, %esp testb %al, %al je .L11 movl 8(%ebp), %eax movl (%eax), %eax cmpl _ZN7QString11shared_nullE, %eax je .L11 subl $12, %esp movl 8(%ebp), %eax pushl (%eax) call _ZN11QStringData10deleteSelfEv addl $16, %esp .L11: leave ret .LFE3: .Lfe3: .size _ZN7QStringD1Ev,.Lfe3-_ZN7QStringD1Ev .section .gnu.linkonce.t._ZplPKcRK7QString,"ax",@progbits .align 2 .weak _ZplPKcRK7QString .type _ZplPKcRK7QString,@function _ZplPKcRK7QString: .LFB4: pushl %ebp .LCFI11: movl %esp, %ebp .LCFI12: pushl %ebx .LCFI13: subl $4, %esp .LCFI14: subl $4, %esp pushl $-1 pushl 12(%ebp) pushl 8(%ebp) .LEHB3: .LCFI15: call _ZN7QString9fromAsciiEPKci .LEHE3: addl $12, %esp subl $8, %esp pushl 16(%ebp) pushl 8(%ebp) .LEHB4: call _ZN7QStringpLERKS_ .LEHE4: addl $16, %esp jmp .L16 .L21: movl %eax, -8(%ebp) movl -8(%ebp), %ebx subl $12, %esp pushl 8(%ebp) call _ZN7QStringD1Ev addl $16, %esp movl %ebx, -8(%ebp) subl $12, %esp pushl -8(%ebp) .LEHB5: call _Unwind_Resume .LEHE5: .L16: movl 8(%ebp), %eax movl -4(%ebp), %ebx leave ret $4 .LFE4: .Lfe4: .size _ZplPKcRK7QString,.Lfe4-_ZplPKcRK7QString .section .gcc_except_table .LLSDA4: .byte 0xff .byte 0xff .byte 0x1 .uleb128 .LLSDACSE4-.LLSDACSB4 .LLSDACSB4: .uleb128 .LEHB3-.LFB4 .uleb128 .LEHE3-.LEHB3 .uleb128 0x0 .uleb128 0x0 .uleb128 .LEHB4-.LFB4 .uleb128 .LEHE4-.LEHB4 .uleb128 .L21-.LFB4 .uleb128 0x0 .uleb128 .LEHB5-.LFB4 .uleb128 .LEHE5-.LEHB5 .uleb128 0x0 .uleb128 0x0 .LLSDACSE4: .section .gnu.linkonce.t._ZplPKcRK7QString .section .rodata .type FALSE,@object .size FALSE,1 FALSE: .byte 0 .type TRUE,@object .size TRUE,1 TRUE: .byte 1 .section .gnu.linkonce.t._ZN7QShared5derefEv,"ax",@progbits .align 2 .weak _ZN7QShared5derefEv .type _ZN7QShared5derefEv,@function _ZN7QShared5derefEv: .LFB5: pushl %ebp .LCFI16: movl %esp, %ebp .LCFI17: movl 8(%ebp), %eax decl (%eax) cmpl $0, (%eax) sete %al andl $255, %eax popl %ebp ret .LFE5: .Lfe5: .size _ZN7QShared5derefEv,.Lfe5-_ZN7QShared5derefEv .section .eh_frame,"aw",@progbits .Lframe1: .long .LECIE1-.LSCIE1 .LSCIE1: .long 0x0 .byte 0x1 .string "zPL" .uleb128 0x1 .sleb128 -4 .byte 0x8 .uleb128 0x6 .byte 0x0 .long __gxx_personality_v0 .byte 0x0 .byte 0xc .uleb128 0x4 .uleb128 0x4 .byte 0x88 .uleb128 0x1 .align 4 .LECIE1: .LSFDE3: .long .LEFDE3-.LASFDE3 .LASFDE3: .long .LASFDE3-.Lframe1 .long .LFB2 .long .LFE2-.LFB2 .uleb128 0x4 .long .LLSDA2 .byte 0x4 .long .LCFI2-.LFB2 .byte 0xe .uleb128 0x8 .byte 0x85 .uleb128 0x2 .byte 0x4 .long .LCFI3-.LCFI2 .byte 0xd .uleb128 0x5 .byte 0x4 .long .LCFI5-.LCFI3 .byte 0x83 .uleb128 0x3 .byte 0x4 .long .LCFI6-.LCFI5 .byte 0x2e .uleb128 0x10 .align 4 .LEFDE3: .LSFDE5: .long .LEFDE5-.LASFDE5 .LASFDE5: .long .LASFDE5-.Lframe1 .long .LFB3 .long .LFE3-.LFB3 .uleb128 0x4 .long 0x0 .byte 0x4 .long .LCFI7-.LFB3 .byte 0xe .uleb128 0x8 .byte 0x85 .uleb128 0x2 .byte 0x4 .long .LCFI8-.LCFI7 .byte 0xd .uleb128 0x5 .byte 0x4 .long .LCFI10-.LCFI8 .byte 0x2e .uleb128 0x10 .align 4 .LEFDE5: .LSFDE7: .long .LEFDE7-.LASFDE7 .LASFDE7: .long .LASFDE7-.Lframe1 .long .LFB4 .long .LFE4-.LFB4 .uleb128 0x4 .long .LLSDA4 .byte 0x4 .long .LCFI11-.LFB4 .byte 0xe .uleb128 0x8 .byte 0x85 .uleb128 0x2 .byte 0x4 .long .LCFI12-.LCFI11 .byte 0xd .uleb128 0x5 .byte 0x4 .long .LCFI14-.LCFI12 .byte 0x83 .uleb128 0x3 .byte 0x4 .long .LCFI15-.LCFI14 .byte 0x2e .uleb128 0x10 .align 4 .LEFDE7: .ident "GCC: (GNU) 3.2"