// File: /workspace/github_c_makefile_star2_O3/meaning-matters[P]Except/Test.c
// Function: TestThrow
static void TestThrow(void)
{
    printf("\nTHROW TESTS -------------------------------------------\n\n");

    /* see if exception is lost outside */
    printf("-->%2d: Lost Exception?\n", testNum++);
    throw (Exception, NULL);
    printf("\n");

    /* see if throw works and if correct catch clause is selected */
    try
    {
        printf("-->%2d: Caught Exception?\n", testNum++);
        throw (Exception, NULL);
    }
    catch (RuntimeException, e);
    catch (Exception, e)
    {
        printf("%s\n", e->getMessage());
    }
    finally;
    printf("\n");

    /* see if throw works properly from within catch clause */
    try
    {
        throw (Exception, NULL);
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
leaq 0x6076(%rip), %rdi      # 0xa885
callq 0x1070
movl 0x9a46(%rip), %esi      # 0xe260
movl %esi, %eax
incl %eax
movl %eax, 0x9a3c(%rip)      # 0xe260
leaq 0x5c2b(%rip), %rdi      # 0xa456
xorl %ebx, %ebx
movl %ebx, %eax
movb %bl, 0x7(%rsp)
callq 0x1080
leaq 0x9a31(%rip), %r13      # 0xe270
movq (%r13), %rdi
leaq 0x9896(%rip), %rsi      # 0xe0e0
leaq 0x5bc7(%rip), %r15      # 0xa418
movl %ebx, %edx
movq %r15, %rcx
movl $0x2b, %r8d
callq 0x1715
movl $0xa, %edi
callq 0x1050
movq (%r13), %rdi
movl $0x2f, %edx
movq %r15, %rsi
callq 0x157c
leaq 0x9a99(%rip), %r12      # 0xe31c
leaq 0x98b6(%rip), %rbp      # 0xe140
movl $0x1, %ebx
movq (%r13), %rdi
callq 0x1334
movq %rax, %r14
movq %rax, %rdi
movq %r12, %rsi
movq %r15, %rdx
movl $0x2f, %ecx
callq 0x1bb0
testl %eax, %eax
je 0x48d1
movq (%r14), %rdi
cmpl $0x0, 0x1b4(%rdi)
je 0x48d1
addq $0x8, %rdi
movl %ebx, %esi
callq 0x1130
testl %eax, %eax
je 0x4992
movq %r14, %rdi
movq %r12, %rsi
movq %rbp, %rdx
movq %r15, %rcx
movl $0x34, %r8d
callq 0x1c49
testl %eax, %eax
je 0x4924
movq (%r14), %rax
cmpl $0x0, 0x1b4(%rax)
je 0x4924
movq %r14, %rdi
movq %rbp, %rsi
callq 0x1904
testl %eax, %eax
je 0x4924
movq 0x8(%r14), %rdi
movl %ebx, %esi
callq 0x1f9d
movq (%r14), %rax
movl $0x2, 0x1b8(%rax)
jmp 0x49db
movq %r14, %rdi
movq %r12, %rsi
leaq 0x97af(%rip), %rdx      # 0xe0e0
movq %r15, %rcx
movl $0x35, %r8d
callq 0x1c49
testl %eax, %eax
je 0x49db
movq (%r14), %rax
cmpl $0x0, 0x1b4(%rax)
je 0x49db
movq %r14, %rdi
leaq 0x977f(%rip), %rsi      # 0xe0e0
callq 0x1904
testl %eax, %eax
je 0x49db
movq 0x8(%r14), %rdi
movl %ebx, %esi
callq 0x1f9d
movq (%r14), %rcx
movl $0x2, 0x1b8(%rcx)
callq *0x1e0(%rax)
movq %rax, %rdi
callq 0x1070
jmp 0x49db
movq (%r14), %rax
movl $0x1, 0x1b8(%rax)
movl 0x98bb(%rip), %esi      # 0xe260
movl %esi, %eax
incl %eax
movl %eax, 0x98b1(%rip)      # 0xe260
leaq 0x5ab9(%rip), %rdi      # 0xa46f
movb 0x7(%rsp), %al
callq 0x1080
xorl %eax, %eax
movl %eax, %edx
movq %r14, %rdi
leaq 0x9713(%rip), %rsi      # 0xe0e0
movq %r15, %rcx
movl $0x32, %r8d
callq 0x1715
cmpl $0x0, 0x993a(%rip)      # 0xe31c
je 0x488f
movq (%r14), %rdi
cmpl $0x0, 0x1b4(%rdi)
jne 0x4a18
addq $0xd0, %rdi
movl %ebx, %esi
callq 0x1130
testl %eax, %eax
jne 0x4a18
movq (%r14), %rax
movl $0x1, 0x1b4(%rax)
jmp 0x488f
movq (%r13), %rdi
callq 0x1334
movq (%rax), %rax
movl $0x3, 0x1b8(%rax)
movq (%r13), %rdi
callq 0x1334
movq (%rax), %rax
cmpl $0x0, 0x1b4(%rax)
jg 0x4a50
movq (%r13), %rdi
callq 0x195a
testl %eax, %eax
je 0x4a72
movq (%r13), %rdi
callq 0x1334
movq (%rax), %rax
movl 0x1b4(%rax), %ecx
movl %ecx, %edx
decl %edx
movl %edx, 0x1b4(%rax)
testl %ecx, %ecx
jg 0x4a50
jmp 0x4a2e
movl $0xa, %edi
callq 0x1050
movq (%r13), %rdi
leaq 0x5991(%rip), %rbx      # 0xa418
movl $0x3d, %edx
movq %rbx, %rsi
callq 0x157c
leaq 0x9885(%rip), %r14      # 0xe320
leaq 0x963e(%rip), %r15      # 0xe0e0
movl $0x1, %r12d
movq (%r13), %rdi
callq 0x1334
movq %rax, %rbp
movq %rax, %rdi
movq %r14, %rsi
movq %rbx, %rdx
movl $0x3d, %ecx
callq 0x1bb0
testl %eax, %eax
je 0x4aec
movq (%rbp), %rdi
cmpl $0x0, 0x1b4(%rdi)
je 0x4aec
addq $0x8, %rdi
movl %r12d, %esi
callq 0x1130
testl %eax, %eax
je 0x4be9
movq %rbp, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
movl $0x41, %r8d
callq 0x1c49
testl %eax, %eax
je 0x4b80
movq (%rbp), %rax
cmpl $0x0, 0x1b4(%rax)
je 0x4b80
movq %rbp, %rdi
movq %r15, %rsi
callq 0x1904
testl %eax, %eax
je 0x4b80
movq 0x8(%rbp), %rdi
movl %r12d, %esi
callq 0x1f9d
movq (%rbp), %rax
movl $0x2, 0x1b8(%rax)
movl 0x971d(%rip), %esi      # 0xe260
movl %esi, %eax
incl %eax
movl %eax, 0x9713(%rip)      # 0xe260
xorl %r12d, %r12d
movl %r12d, %eax
leaq 0x5930(%rip), %rdi      # 0xa48a
callq 0x1080
movl %r12d, %edx
movl $0x1, %r12d
movq %rbp, %rdi
leaq 0x96ae(%rip), %rsi      # 0xe220
movq %rbx, %rcx
movl $0x44, %r8d
jmp 0x4c0a
movq %rbp, %rdi
movq %r14, %rsi
leaq 0x9693(%rip), %rdx      # 0xe220
movq %rbx, %rcx
movl $0x46, %r8d
callq 0x1c49
testl %eax, %eax
je 0x4c0f
movq (%rbp), %rax
cmpl $0x0, 0x1b4(%rax)
je 0x4c0f
movq %rbp, %rdi
leaq 0x966a(%rip), %rsi      # 0xe220
callq 0x1904
testl %eax, %eax
je 0x4c0f
movq 0x8(%rbp), %rdi
movl %r12d, %esi
callq 0x1f9d
movq (%rbp), %rcx
movl $0x2, 0x1b8(%rcx)
callq *0x1e0(%rax)
movq %rax, %rdi
callq 0x1070
jmp 0x4c0f
movq (%rbp), %rax
movl $0x1, 0x1b8(%rax)
xorl %eax, %eax
movl %eax, %edx
movq %rbp, %rdi
movq %r15, %rsi
movq %rbx, %rcx
movl $0x3f, %r8d
callq 0x1715
cmpl $0x0, 0x970a(%rip)      # 0xe320
je 0x4aa8
movq (%rbp), %rdi
cmpl $0x0, 0x1b4(%rdi)
jne 0x4c4f
addq $0xd0, %rdi
movl %r12d, %esi
callq 0x1130
testl %eax, %eax
jne 0x4c4f
movq (%rbp), %rax
movl $0x1, 0x1b4(%rax)
jmp 0x4aa8
movq (%r13), %rdi
callq 0x1334
movq (%rax), %rax
movl $0x3, 0x1b8(%rax)
movq (%r13), %rdi
callq 0x1334
movq (%rax), %rax
cmpl $0x0, 0x1b4(%rax)
jg 0x4c87
movq (%r13), %rdi
callq 0x195a
testl %eax, %eax
je 0x4ca9
movq (%r13), %rdi
callq 0x1334
movq (%rax), %rax
movl 0x1b4(%rax), %ecx
movl %ecx, %edx
decl %edx
movl %edx, 0x1b4(%rax)
testl %ecx, %ecx
jg 0x4c87
jmp 0x4c65
movl $0xa, %edi
callq 0x1050
movq (%r13), %rdi
leaq 0x575a(%rip), %rbx      # 0xa418
movl $0x4e, %edx
movq %rbx, %rsi
callq 0x157c
leaq 0x9652(%rip), %r14      # 0xe324
leaq 0x9567(%rip), %r15      # 0xe240
movl $0x1, %ebp
movq (%r13), %rdi
callq 0x1334
movq %rax, %r12
movq %rax, %rdi
movq %r14, %rsi
movq %rbx, %rdx
movl $0x4e, %ecx
callq 0x1bb0
testl %eax, %eax
je 0x4d1d
movq (%r12), %rdi
cmpl $0x0, 0x1b4(%rdi)
je 0x4d1d
addq $0x8, %rdi
movl %ebp, %esi
callq 0x1130
testl %eax, %eax
je 0x4d74
movq %r12, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
movl $0x53, %r8d
callq 0x1c49
testl %eax, %eax
je 0x4dc1
movq (%r12), %rax
cmpl $0x0, 0x1b4(%rax)
je 0x4dc1
movq %r12, %rdi
movq %r15, %rsi
callq 0x1904
testl %eax, %eax
je 0x4dc1
movq 0x8(%r12), %rdi
movl %ebp, %esi
callq 0x1f9d
movq (%r12), %rax
movl $0x2, 0x1b8(%rax)
jmp 0x4dc1
movq (%r12), %rax
movl $0x1, 0x1b8(%rax)
movl 0x94d8(%rip), %esi      # 0xe260
movl %esi, %eax
incl %eax
movl %eax, 0x94ce(%rip)      # 0xe260
xorl %ebp, %ebp
movl %ebp, %eax
leaq 0x56ed(%rip), %rdi      # 0xa48a
callq 0x1080
movl %ebp, %edx
movl $0x1, %ebp
movq %r12, %rdi
leaq 0x946d(%rip), %rsi      # 0xe220
movq %rbx, %rcx
movl $0x51, %r8d
callq 0x1715
cmpl $0x0, 0x955c(%rip)      # 0xe324
je 0x4cde
movq (%r12), %rdi
cmpl $0x0, 0x1b4(%rdi)
jne 0x4e00
addq $0xd0, %rdi
movl %ebp, %esi
callq 0x1130
testl %eax, %eax
jne 0x4e00
movq (%r12), %rax
movl $0x1, 0x1b4(%rax)
jmp 0x4cde
movq (%r13), %rdi
callq 0x1334
movq (%rax), %rax
movl $0x3, 0x1b8(%rax)
movq (%r13), %rdi
callq 0x1334
movq (%rax), %rax
cmpl $0x0, 0x1b4(%rax)
jg 0x4e38
movq (%r13), %rdi
callq 0x195a
testl %eax, %eax
je 0x4e5a
movq (%r13), %rdi
callq 0x1334
movq (%rax), %rax
movl 0x1b4(%rax), %ecx
movl %ecx, %edx
decl %edx
movl %edx, 0x1b4(%rax)
testl %ecx, %ecx
jg 0x4e38
jmp 0x4e16
movl $0xa, %edi
callq 0x1050
movq (%r13), %rdi
leaq 0x55a9(%rip), %rbx      # 0xa418
movl $0x58, %edx
movq %rbx, %rsi
callq 0x157c
leaq 0x94a5(%rip), %r14      # 0xe328
leaq 0x9396(%rip), %r15      # 0xe220
movl $0x1, %ebp
movq (%r13), %rdi
callq 0x1334
movq %rax, %r12
movq %rax, %rdi
movq %r14, %rsi
movq %rbx, %rdx
movl $0x58, %ecx
callq 0x1bb0
testl %eax, %eax
je 0x4ece
movq (%r12), %rdi
cmpl $0x0, 0x1b4(%rdi)
je 0x4ece
addq $0x8, %rdi
movl %ebp, %esi
callq 0x1130
testl %eax, %eax
je 0x4f37
movq %r12, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
movl $0x5d, %r8d
callq 0x1c49
testl %eax, %eax
je 0x4f84
movq (%r12), %rax
cmpl $0x0, 0x1b4(%rax)
je 0x4f84
movq %r12, %rdi
movq %r15, %rsi
callq 0x1904
testl %eax, %eax
je 0x4f84
movq 0x8(%r12), %rdi
movl %ebp, %esi
callq 0x1f9d
movq (%r12), %rcx
movl $0x2, 0x1b8(%rcx)
callq *0x1e0(%rax)
movq %rax, %rdi
callq 0x1070
jmp 0x4f84
movq (%r12), %rax
movl $0x1, 0x1b8(%rax)
movl 0x9315(%rip), %esi      # 0xe260
movl %esi, %eax
incl %eax
movl %eax, 0x930b(%rip)      # 0xe260
xorl %ebp, %ebp
movl %ebp, %eax
leaq 0x5549(%rip), %rdi      # 0xa4a9
callq 0x1080
movl %ebp, %edx
movl $0x1, %ebp
movq %r12, %rdi
leaq 0x92ca(%rip), %rsi      # 0xe240
movq %rbx, %rcx
movl $0x5b, %r8d
callq 0x1715
cmpl $0x0, 0x939d(%rip)      # 0xe328
je 0x4e8f
movq (%r12), %rdi
cmpl $0x0, 0x1b4(%rdi)
jne 0x4fc3
addq $0xd0, %rdi
movl %ebp, %esi
callq 0x1130
testl %eax, %eax
jne 0x4fc3
movq (%r12), %rax
movl $0x1, 0x1b4(%rax)
jmp 0x4e8f
movq (%r13), %rdi
callq 0x1334
movq (%rax), %rax
movl $0x3, 0x1b8(%rax)
movq (%r13), %rdi
callq 0x1334
movq (%rax), %rax
cmpl $0x0, 0x1b4(%rax)
jg 0x4ffb
movq (%r13), %rdi
callq 0x195a
testl %eax, %eax
je 0x501d
movq (%r13), %rdi
callq 0x1334
movq (%rax), %rax
movl 0x1b4(%rax), %ecx
movl %ecx, %edx
decl %edx
movl %edx, 0x1b4(%rax)
testl %ecx, %ecx
jg 0x4ffb
jmp 0x4fd9
movl $0xa, %edi
callq 0x1050
movq (%r13), %rdi
leaq 0x53e6(%rip), %rbx      # 0xa418
movl $0x64, %ebp
movq %rbx, %rsi
movl %ebp, %edx
callq 0x157c
leaq 0x92e4(%rip), %r14      # 0xe32c
movl $0x1, %r15d
movq (%r13), %rdi
callq 0x1334
movq %rax, %r12
movq %rax, %rdi
movq %r14, %rsi
movq %rbx, %rdx
movl %ebp, %ecx
callq 0x1bb0
testl %eax, %eax
je 0x5099
movq (%r12), %rdi
cmpl $0x0, 0x1b4(%rdi)
je 0x5099
addq $0x8, %rdi
movl %r15d, %esi
callq 0x1130
testl %eax, %eax
jne 0x5099
movq (%r12), %rax
movl $0x1, 0x1b8(%rax)
cmpl $0x0, 0x928c(%rip)      # 0xe32c
je 0x504e
movq (%r12), %rdi
cmpl $0x0, 0x1b4(%rdi)
jne 0x50d5
addq $0xd0, %rdi
movl %r15d, %esi
callq 0x1130
testl %eax, %eax
jne 0x50d5
movq (%r12), %rax
movl $0x1, 0x1b4(%rax)
jmp 0x504e
movq (%r13), %rdi
callq 0x1334
movq (%rax), %rax
movl $0x3, 0x1b8(%rax)
leaq 0x5364(%rip), %rbx      # 0xa456
xorl %r12d, %r12d
leaq 0x8fe4(%rip), %r14      # 0xe0e0
leaq 0x5315(%rip), %r15      # 0xa418
movl $0x68, %ebp
movq (%r13), %rdi
callq 0x1334
movq (%rax), %rax
cmpl $0x0, 0x1b4(%rax)
jg 0x515c
movq (%r13), %rdi
callq 0x195a
testl %eax, %eax
jne 0x515c
jmp 0x517e
movl 0x912e(%rip), %esi      # 0xe260
movl %esi, %eax
incl %eax
movl %eax, 0x9124(%rip)      # 0xe260
movl %r12d, %eax
movq %rbx, %rdi
callq 0x1080
movq (%r13), %rdi
movl %r12d, %edx
movq %r14, %rsi
movq %r15, %rcx
movl %ebp, %r8d
callq 0x1715
movq (%r13), %rdi
callq 0x1334
movq (%rax), %rax
movl 0x1b4(%rax), %ecx
movl %ecx, %edx
decl %edx
movl %edx, 0x1b4(%rax)
testl %ecx, %ecx
jg 0x512c
jmp 0x5108
movl $0xa, %edi
callq 0x1050
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq