// File: dadocolussi[P]gdc-circular_queue/tests/catch.hpp
// Function: Catch::TestSpecParser::visitChar(char)
void visitChar( char c ) {
            if( m_mode == None ) {
                switch( c ) {
                case ' ': return;
                case '~': m_exclusion = true; return;
                case '[': return startNewMode( Tag, ++m_pos );
                case '"': return startNewMode( QuotedName, ++m_pos );
                default: startNewMode( Name, m_pos ); break;
                }
            }
            if( m_mode == Name ) {
                if( c == ',' ) {
                    addPattern<TestSpec::NamePattern>();
                    addFilter();
                }
                else if( c == '[' ) {
                    if( subString() == "exclude:" )
                        m_exclusion = true;
                    else
                        addPattern<TestSpec::NamePattern>();
                    startNewMode( Tag, ++m_pos );
                }
            }
            else if( m_mode == QuotedName && c == '"' )
                addPattern<TestSpec::NamePattern>();
            else if( m_mode == Tag && c == ']' )
                addPattern<TestSpec::TagPattern>();
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x48(%rbp)
cmpl $0x0, (%rax)
jne 0x29813
movsbl -0x9(%rbp), %eax
movl %eax, -0x4c(%rbp)
subl $0x20, %eax
je 0x297af
jmp 0x29791
movl -0x4c(%rbp), %eax
subl $0x22, %eax
je 0x297e0
jmp 0x2979b
movl -0x4c(%rbp), %eax
subl $0x5b, %eax
je 0x297c1
jmp 0x297a5
movl -0x4c(%rbp), %eax
subl $0x7e, %eax
je 0x297b4
jmp 0x297ff
jmp 0x29905
movq -0x48(%rbp), %rax
movb $0x1, 0x4(%rax)
jmp 0x29905
movq -0x48(%rbp), %rdi
movq 0x10(%rdi), %rdx
addq $0x1, %rdx
movq %rdx, 0x10(%rdi)
movl $0x3, %esi
callq 0x29b80
jmp 0x29905
movq -0x48(%rbp), %rdi
movq 0x10(%rdi), %rdx
addq $0x1, %rdx
movq %rdx, 0x10(%rdi)
movl $0x2, %esi
callq 0x29b80
jmp 0x29905
movq -0x48(%rbp), %rdi
movq 0x10(%rdi), %rdx
movl $0x1, %esi
callq 0x29b80
jmp 0x29813
movq -0x48(%rbp), %rax
cmpl $0x1, (%rax)
jne 0x298c9
movsbl -0x9(%rbp), %eax
cmpl $0x2c, %eax
jne 0x29840
movq -0x48(%rbp), %rdi
callq 0x29920
movq -0x48(%rbp), %rdi
callq 0x29bb0
jmp 0x298c7
movsbl -0x9(%rbp), %eax
cmpl $0x5b, %eax
jne 0x298c5
movq -0x48(%rbp), %rsi
leaq -0x30(%rbp), %rdi
movq %rdi, -0x58(%rbp)
callq 0x29c20
movq -0x58(%rbp), %rdi
leaq 0x5440d(%rip), %rsi     # 0x7dc72
callq 0x1c1d0
movb %al, -0x4d(%rbp)
jmp 0x2986f
leaq -0x30(%rbp), %rdi
callq 0xecd8
movb -0x4d(%rbp), %al
testb $0x1, %al
jne 0x29881
jmp 0x298a2
movq -0x48(%rbp), %rax
movb $0x1, 0x4(%rax)
jmp 0x298ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0xecd8
jmp 0x2990b
movq -0x48(%rbp), %rdi
callq 0x29920
movq -0x48(%rbp), %rdi
movq 0x10(%rdi), %rdx
addq $0x1, %rdx
movq %rdx, 0x10(%rdi)
movl $0x3, %esi
callq 0x29b80
jmp 0x298c7
jmp 0x29905
movq -0x48(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x298e6
movsbl -0x9(%rbp), %eax
cmpl $0x22, %eax
jne 0x298e6
movq -0x48(%rbp), %rdi
callq 0x29920
jmp 0x29903
movq -0x48(%rbp), %rax
cmpl $0x3, (%rax)
jne 0x29901
movsbl -0x9(%rbp), %eax
cmpl $0x5d, %eax
jne 0x29901
movq -0x48(%rbp), %rdi
callq 0x29c60
jmp 0x29903
jmp 0x29905
addq $0x60, %rsp
popq %rbp
retq
movq -0x38(%rbp), %rdi
callq 0xeb60
nopw %cs:(%rax,%rax)
nop