.file "throw.cpp" .text .align 2 .globl __Z9check_ptrPv .def __Z9check_ptrPv; .scl 2; .type 32; .endef __Z9check_ptrPv: pushl %ebp movl %esp, %ebp subl $24, %esp cmpl $0, 8(%ebp) jne L2 movl $4, (%esp) call ___cxa_allocate_exception movl %eax, %edx movl 8(%ebp), %eax movl %eax, (%edx) L3: movl $0, 8(%esp) movl $__ZTIPv, 4(%esp) movl %edx, (%esp) call ___cxa_throw L2: movl 8(%ebp), %eax L1: leave ret .def ___main; .scl 2; .type 32; .endef .def __Unwind_SjLj_Resume; .scl 2; .type 32; .endef .def ___gxx_personality_sj0; .scl 2; .type 32; .endef .def __Unwind_SjLj_Register; .scl 2; .type 32; .endef .def __Unwind_SjLj_Unregister; .scl 2; .type 32; .endef .align 2 .globl _main .def _main; .scl 2; .type 32; .endef _main: pushl %ebp movl %esp, %ebp pushl %edi pushl %esi pushl %ebx subl $124, %esp andl $-16, %esp movl $0, %eax movl %eax, -96(%ebp) movl -96(%ebp), %eax call __alloca movl $___gxx_personality_sj0, -64(%ebp) movl $LLSDA11, -60(%ebp) leal -56(%ebp), %eax leal -24(%ebp), %edx movl %edx, (%eax) movl $L15, %edx movl %edx, 4(%eax) movl %esp, 8(%eax) leal -88(%ebp), %eax movl %eax, (%esp) call __Unwind_SjLj_Register call ___main movl $0, (%esp) movl $1, -84(%ebp) call __Z9check_ptrPv movl %eax, 4(%esp) leal -40(%ebp), %eax movl %eax, (%esp) call __ZN8foo_baseC1EPv leal -40(%ebp), %eax movl %eax, -44(%ebp) jmp L7 L15: leal 24(%ebp), %ebp movl -84(%ebp), %eax movl -80(%ebp), %edx movl %edx, -104(%ebp) movl -76(%ebp), %edx movl %edx, -112(%ebp) cmpl $1, %eax je L14 L6: movl -104(%ebp), %eax movl %eax, -100(%ebp) movl -112(%ebp), %edx movl %edx, -108(%ebp) leal -40(%ebp), %eax movl %eax, (%esp) movl $0, -84(%ebp) call __ZN8foo_baseD1Ev movl -100(%ebp), %eax movl %eax, -104(%ebp) movl -108(%ebp), %edx movl %edx, -112(%ebp) L8: jmp L14 L7: leal -40(%ebp), %eax movl %eax, (%esp) movl $2, -84(%ebp) call __ZN8foo_baseD1Ev jmp L10 L14: cmpl $1, -112(%ebp) je L11 movl -104(%ebp), %eax movl %eax, (%esp) movl $-1, -84(%ebp) call __Unwind_SjLj_Resume L11: movl -104(%ebp), %edx movl %edx, (%esp) call ___cxa_begin_catch movl %eax, -44(%ebp) L12: call ___cxa_end_catch L10: movl $0, -92(%ebp) L5: leal -88(%ebp), %eax movl %eax, (%esp) call __Unwind_SjLj_Unregister movl -92(%ebp), %eax leal -12(%ebp), %esp popl %ebx popl %esi popl %edi popl %ebp ret .section .gcc_except_table,"" .align 4 LLSDA11: .byte 0xff .byte 0x0 .uleb128 LLSDATT11-LLSDATTD11 LLSDATTD11: .byte 0x1 .uleb128 LLSDACSE11-LLSDACSB11 LLSDACSB11: .uleb128 0x0 .uleb128 0x3 .uleb128 0x1 .uleb128 0x1 LLSDACSE11: .byte 0x1 .byte 0x0 .byte 0x0 .byte 0x7d .align 4 .long __ZTIPv LLSDATT11: .text .section .text$_ZN8foo_baseC1EPv,"x" .linkonce discard .align 2 .globl __ZN8foo_baseC1EPv .def __ZN8foo_baseC1EPv; .scl 2; .type 32; .endef __ZN8foo_baseC1EPv: pushl %ebp movl %esp, %ebp movl 8(%ebp), %eax movl $251705934, (%eax) popl %ebp ret .text LC0: .ascii "throw.cpp\0" LC1: .ascii "mConstructed == kMagic\0" .section .text$_ZN8foo_baseD1Ev,"x" .linkonce discard .align 2 .globl __ZN8foo_baseD1Ev .def __ZN8foo_baseD1Ev; .scl 2; .type 32; .endef __ZN8foo_baseD1Ev: pushl %ebp movl %esp, %ebp subl $24, %esp movl 8(%ebp), %eax cmpl $251705934, (%eax) je L17 movl $8, 8(%esp) movl $LC0, 4(%esp) movl $LC1, (%esp) call __assert L17: leave ret .text .align 4 _kMagic: .long 251705934 .def ___cxa_end_catch; .scl 3; .type 32; .endef .def ___cxa_begin_catch; .scl 3; .type 32; .endef .def __ZN8foo_baseD1Ev; .scl 3; .type 32; .endef .def __ZN8foo_baseC1EPv; .scl 3; .type 32; .endef .def ___cxa_throw; .scl 3; .type 32; .endef .def ___cxa_allocate_exception; .scl 3; .type 32; .endef .def __assert; .scl 3; .type 32; .endef