// File: xelia-it[P]mustache/third-party/catch2/single_include/catch2/catch.hpp
// Function: Catch::TestSpecParser::addTagPattern()
void TestSpecParser::addTagPattern() {
        auto token = preprocessPattern();

        if (!token.empty()) {
            // If the tag pattern is the "hide and tag" shorthand (e.g. [.foo])
            // we have to create a separate hide tag and shorten the real one
            if (token.size() > 1 && token[0] == '.') {
                token.erase(token.begin());
                TestSpec::PatternPtr pattern = std::make_shared<TestSpec::TagPattern>(".", m_substring);
                if (m_exclusion) {
                    pattern = std::make_shared<TestSpec::ExcludedPattern>(pattern);
                }
                m_currentFilter.m_patterns.push_back(pattern);
            }

            TestSpec::PatternPtr pattern = std::make_shared<TestSpec::TagPattern>(token, m_substring);

            if (m_exclusion) {
                pattern = std::make_shared<TestSpec::ExcludedPattern>(pattern);
            }
            m_currentFilter.m_patterns.push_back(pattern);
        }
        m_substring.clear();
        m_exclusion = false;
        m_mode = None;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rsi
movq %rsi, -0xb8(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x6c850
leaq -0x28(%rbp), %rdi
callq 0x52bb0
testb $0x1, %al
jne 0x6c7ca
leaq -0x28(%rbp), %rdi
callq 0x52500
cmpq $0x1, %rax
jbe 0x6c709
xorl %eax, %eax
movl %eax, %esi
leaq -0x28(%rbp), %rdi
callq 0x52e00
movq %rax, -0xc0(%rbp)
jmp 0x6c5fd
movq -0xc0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2e, %eax
jne 0x6c709
leaq -0x28(%rbp), %rdi
movq %rdi, -0xd0(%rbp)
callq 0x52640
movq %rax, -0x48(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x93330
movq -0xd0(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x528b0
movq %rax, -0xc8(%rbp)
jmp 0x6c64a
movq -0xb8(%rbp), %rdx
movq -0xc8(%rbp), %rax
movq %rax, -0x50(%rbp)
addq $0x40, %rdx
leaq 0xd497a(%rip), %rsi     # 0x140fe1
leaq -0x70(%rbp), %rdi
callq 0x93370
jmp 0x6c672
leaq -0x60(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x933f0
leaq -0x70(%rbp), %rdi
callq 0x93420
movq -0xb8(%rbp), %rax
testb $0x1, 0x8(%rax)
je 0x6c6e7
leaq -0x80(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x931e0
jmp 0x6c6a4
leaq -0x60(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x93250
leaq -0x80(%rbp), %rdi
callq 0x93280
jmp 0x6c6e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x6c7fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x93310
jmp 0x6c7fd
movq -0xb8(%rbp), %rdi
addq $0x98, %rdi
leaq -0x60(%rbp), %rsi
callq 0x932a0
jmp 0x6c700
leaq -0x60(%rbp), %rdi
callq 0x93310
movq -0xb8(%rbp), %rdx
addq $0x40, %rdx
leaq -0xa0(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x93440
jmp 0x6c726
leaq -0x90(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x933f0
leaq -0xa0(%rbp), %rdi
callq 0x93420
movq -0xb8(%rbp), %rax
testb $0x1, 0x8(%rax)
je 0x6c7a2
leaq -0xb0(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x931e0
jmp 0x6c767
leaq -0x90(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x93250
leaq -0xb0(%rbp), %rdi
callq 0x93280
jmp 0x6c7a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x93310
jmp 0x6c7fd
movq -0xb8(%rbp), %rdi
addq $0x98, %rdi
leaq -0x90(%rbp), %rsi
callq 0x932a0
jmp 0x6c7be
leaq -0x90(%rbp), %rdi
callq 0x93310
movq -0xb8(%rbp), %rdi
addq $0x40, %rdi
callq 0x52960
movq -0xb8(%rbp), %rax
movb $0x0, 0x8(%rax)
movl $0x0, (%rax)
leaq -0x28(%rbp), %rdi
callq 0x52e58
addq $0xd0, %rsp
popq %rbp
retq
leaq -0x28(%rbp), %rdi
callq 0x52e58
movq -0x30(%rbp), %rdi
callq 0x52c90
nop