.file "exc_args.cpp" .text .globl _Z3fooiiiiiiii .type _Z3fooiiiiiiii, @function _Z3fooiiiiiiii: .LFB15: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 subq $32, %rsp movl %edi, -4(%rbp) movl %esi, -8(%rbp) movl %edx, -12(%rbp) movl %ecx, -16(%rbp) movl %r8d, -20(%rbp) movl %r9d, -24(%rbp) cmpl $1, -4(%rbp) jle .L2 movl $1, %edi call __cxa_allocate_exception movl $0, %edx movl $_ZTI4ExcG, %esi movq %rax, %rdi call __cxa_throw .L2: movl $1, %edi call __cxa_allocate_exception movl $0, %edx movl $_ZTI4ExcC, %esi movq %rax, %rdi call __cxa_throw .cfi_endproc .LFE15: .size _Z3fooiiiiiiii, .-_Z3fooiiiiiiii .globl _Z11filter_onlyi .type _Z11filter_onlyi, @function _Z11filter_onlyi: .LFB16: .cfi_startproc .cfi_personality 0x3,__gxx_personality_v0 .cfi_lsda 0x3,.LLSDA16 pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 subq $16, %rsp movl %edi, -4(%rbp) movl -4(%rbp), %eax pushq $7 pushq $6 movl $5, %r9d movl $4, %r8d movl $3, %ecx movl $2, %edx movl $1, %esi movl %eax, %edi .LEHB0: .cfi_escape 0x2e,0x10 call _Z3fooiiiiiiii .LEHE0: addq $16, %rsp jmp .L7 .L6: cmpq $-1, %rdx je .L5 movq %rax, %rdi .LEHB1: call _Unwind_Resume .L5: movq %rax, %rdi call __cxa_call_unexpected .LEHE1: .L7: leave .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE16: .globl __gxx_personality_v0 .section .gcc_except_table,"a",@progbits .align 4 .LLSDA16: .byte 0xff .byte 0x3 .uleb128 .LLSDATT16-.LLSDATTD16 .LLSDATTD16: .byte 0x1 .uleb128 .LLSDACSE16-.LLSDACSB16 .LLSDACSB16: .uleb128 .LEHB0-.LFB16 .uleb128 .LEHE0-.LEHB0 .uleb128 .L6-.LFB16 .uleb128 0x1 .uleb128 .LEHB1-.LFB16 .uleb128 .LEHE1-.LEHB1 .uleb128 0 .uleb128 0 .LLSDACSE16: .byte 0x7f .byte 0 .align 4 .long _ZTI4ExcA .long _ZTI4ExcB .long _ZTI4ExcC .long _ZTI4ExcD .long _ZTI4ExcE .long _ZTI4ExcF .LLSDATT16: .byte 0x1 .byte 0x2 .byte 0x3 .byte 0x4 .byte 0x5 .byte 0x6 .byte 0 .text .size _Z11filter_onlyi, .-_Z11filter_onlyi .section .rodata .align 8 .LC0: .string "this statement is cold and should be outlined" .text .globl _Z12never_throwsv .type _Z12never_throwsv, @function _Z12never_throwsv: .LFB17: .cfi_startproc .cfi_personality 0x3,__gxx_personality_v0 .cfi_lsda 0x3,.LLSDA17 pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 movl $.LC0, %edi .LEHB2: call puts .LEHE2: jmp .L12 .L11: cmpq $-1, %rdx je .L10 movq %rax, %rdi .LEHB3: call _Unwind_Resume .L10: movq %rax, %rdi call __cxa_call_unexpected .LEHE3: .L12: popq %rbp .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE17: .section .gcc_except_table,"a",@progbits .align 4 .LLSDA17: .byte 0xff .byte 0x3 .uleb128 .LLSDATT17-.LLSDATTD17 .LLSDATTD17: .byte 0x1 .uleb128 .LLSDACSE17-.LLSDACSB17 .LLSDACSB17: .uleb128 .LEHB2-.LFB17 .uleb128 .LEHE2-.LEHB2 .uleb128 .L11-.LFB17 .uleb128 0x1 .uleb128 .LEHB3-.LFB17 .uleb128 .LEHE3-.LEHB3 .uleb128 0 .uleb128 0 .LLSDACSE17: .byte 0x7f .byte 0 .align 4 .LLSDATT17: .byte 0 .text .size _Z12never_throwsv, .-_Z12never_throwsv .section .rodata .LC1: .string "caught exception" .LC2: .string "caught ExcC" .text .globl main .type main, @function main: .LFB18: .cfi_startproc .cfi_personality 0x3,__gxx_personality_v0 .cfi_lsda 0x3,.LLSDA18 pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 pushq %rbx subq $40, %rsp .cfi_offset 3, -24 movl %edi, -36(%rbp) movq %rsi, -48(%rbp) movl $1768710518, -26(%rbp) movw $100, -22(%rbp) movl $0, -20(%rbp) .L17: cmpl $999999, -20(%rbp) ja .L14 cmpl $2, -36(%rbp) jne .L15 call _Z12never_throwsv .L15: cmpl $2, -36(%rbp) jne .L16 movl -36(%rbp), %eax movl %eax, %edi .LEHB4: call _Z11filter_onlyi .LEHE4: .L16: movl -36(%rbp), %eax pushq $7 pushq $6 movl $5, %r9d movl $4, %r8d movl $3, %ecx movl $2, %edx movl $1, %esi movl %eax, %edi .LEHB5: .cfi_escape 0x2e,0x10 call _Z3fooiiiiiiii .LEHE5: addq $16, %rsp .L25: addl $1, -20(%rbp) jmp .L17 .L14: movl $0, %eax jmp .L31 .L27: movq %rax, %rdi call __cxa_begin_catch movl $.LC1, %edi movl $0, %eax .LEHB6: .cfi_escape 0x2e,0 call printf .LEHE6: .LEHB7: call __cxa_end_catch .LEHE7: jmp .L16 .L28: movq %rax, %rbx call __cxa_end_catch movq %rbx, %rax movq %rax, %rdi .LEHB8: call _Unwind_Resume .L29: cmpq $2, %rdx je .L22 movq %rax, %rdi call _Unwind_Resume .LEHE8: .L22: movq %rax, %rdi call __cxa_begin_catch movzbl -26(%rbp), %eax cmpb $118, %al je .L23 call abort .L23: movzbl -25(%rbp), %eax cmpb $97, %al je .L24 call abort .L24: movl $.LC2, %edi .LEHB9: call puts .LEHE9: call __cxa_end_catch jmp .L25 .L30: movq %rax, %rbx call __cxa_end_catch movq %rbx, %rax movq %rax, %rdi .LEHB10: call _Unwind_Resume .LEHE10: .L31: movq -8(%rbp), %rbx leave .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE18: .section .gcc_except_table,"a",@progbits .align 4 .LLSDA18: .byte 0xff .byte 0x3 .uleb128 .LLSDATT18-.LLSDATTD18 .LLSDATTD18: .byte 0x1 .uleb128 .LLSDACSE18-.LLSDACSB18 .LLSDACSB18: .uleb128 .LEHB4-.LFB18 .uleb128 .LEHE4-.LEHB4 .uleb128 .L27-.LFB18 .uleb128 0x1 .uleb128 .LEHB5-.LFB18 .uleb128 .LEHE5-.LEHB5 .uleb128 .L29-.LFB18 .uleb128 0x3 .uleb128 .LEHB6-.LFB18 .uleb128 .LEHE6-.LEHB6 .uleb128 .L28-.LFB18 .uleb128 0 .uleb128 .LEHB7-.LFB18 .uleb128 .LEHE7-.LEHB7 .uleb128 0 .uleb128 0 .uleb128 .LEHB8-.LFB18 .uleb128 .LEHE8-.LEHB8 .uleb128 0 .uleb128 0 .uleb128 .LEHB9-.LFB18 .uleb128 .LEHE9-.LEHB9 .uleb128 .L30-.LFB18 .uleb128 0 .uleb128 .LEHB10-.LFB18 .uleb128 .LEHE10-.LEHB10 .uleb128 0 .uleb128 0 .LLSDACSE18: .byte 0x1 .byte 0 .byte 0x2 .byte 0 .align 4 .long _ZTI4ExcC .long 0 .LLSDATT18: .text .size main, .-main .weak _ZTI4ExcF .section .rodata._ZTI4ExcF,"aG",@progbits,_ZTI4ExcF,comdat .align 8 .type _ZTI4ExcF, @object .size _ZTI4ExcF, 16 _ZTI4ExcF: .quad _ZTVN10__cxxabiv117__class_type_infoE+16 .quad _ZTS4ExcF .weak _ZTS4ExcF .section .rodata._ZTS4ExcF,"aG",@progbits,_ZTS4ExcF,comdat .type _ZTS4ExcF, @object .size _ZTS4ExcF, 6 _ZTS4ExcF: .string "4ExcF" .weak _ZTI4ExcE .section .rodata._ZTI4ExcE,"aG",@progbits,_ZTI4ExcE,comdat .align 8 .type _ZTI4ExcE, @object .size _ZTI4ExcE, 16 _ZTI4ExcE: .quad _ZTVN10__cxxabiv117__class_type_infoE+16 .quad _ZTS4ExcE .weak _ZTS4ExcE .section .rodata._ZTS4ExcE,"aG",@progbits,_ZTS4ExcE,comdat .type _ZTS4ExcE, @object .size _ZTS4ExcE, 6 _ZTS4ExcE: .string "4ExcE" .weak _ZTI4ExcD .section .rodata._ZTI4ExcD,"aG",@progbits,_ZTI4ExcD,comdat .align 8 .type _ZTI4ExcD, @object .size _ZTI4ExcD, 16 _ZTI4ExcD: .quad _ZTVN10__cxxabiv117__class_type_infoE+16 .quad _ZTS4ExcD .weak _ZTS4ExcD .section .rodata._ZTS4ExcD,"aG",@progbits,_ZTS4ExcD,comdat .type _ZTS4ExcD, @object .size _ZTS4ExcD, 6 _ZTS4ExcD: .string "4ExcD" .weak _ZTI4ExcB .section .rodata._ZTI4ExcB,"aG",@progbits,_ZTI4ExcB,comdat .align 8 .type _ZTI4ExcB, @object .size _ZTI4ExcB, 16 _ZTI4ExcB: .quad _ZTVN10__cxxabiv117__class_type_infoE+16 .quad _ZTS4ExcB .weak _ZTS4ExcB .section .rodata._ZTS4ExcB,"aG",@progbits,_ZTS4ExcB,comdat .type _ZTS4ExcB, @object .size _ZTS4ExcB, 6 _ZTS4ExcB: .string "4ExcB" .weak _ZTI4ExcA .section .rodata._ZTI4ExcA,"aG",@progbits,_ZTI4ExcA,comdat .align 8 .type _ZTI4ExcA, @object .size _ZTI4ExcA, 16 _ZTI4ExcA: .quad _ZTVN10__cxxabiv117__class_type_infoE+16 .quad _ZTS4ExcA .weak _ZTS4ExcA .section .rodata._ZTS4ExcA,"aG",@progbits,_ZTS4ExcA,comdat .type _ZTS4ExcA, @object .size _ZTS4ExcA, 6 _ZTS4ExcA: .string "4ExcA" .weak _ZTI4ExcC .section .rodata._ZTI4ExcC,"aG",@progbits,_ZTI4ExcC,comdat .align 8 .type _ZTI4ExcC, @object .size _ZTI4ExcC, 16 _ZTI4ExcC: .quad _ZTVN10__cxxabiv117__class_type_infoE+16 .quad _ZTS4ExcC .weak _ZTS4ExcC .section .rodata._ZTS4ExcC,"aG",@progbits,_ZTS4ExcC,comdat .type _ZTS4ExcC, @object .size _ZTS4ExcC, 6 _ZTS4ExcC: .string "4ExcC" .weak _ZTI4ExcG .section .rodata._ZTI4ExcG,"aG",@progbits,_ZTI4ExcG,comdat .align 8 .type _ZTI4ExcG, @object .size _ZTI4ExcG, 16 _ZTI4ExcG: .quad _ZTVN10__cxxabiv117__class_type_infoE+16 .quad _ZTS4ExcG .weak _ZTS4ExcG .section .rodata._ZTS4ExcG,"aG",@progbits,_ZTS4ExcG,comdat .type _ZTS4ExcG, @object .size _ZTS4ExcG, 6 _ZTS4ExcG: .string "4ExcG" .ident "GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-3)" .section .note.GNU-stack,"",@progbits