// File: /workspace/github_cpp_makefile_star2_O2/afborchert[P]fmt/test_suite.cpp
// Function: bool special_testcase<char, void*>(int, char const*, char const*, void*&&)
bool special_testcase(int expected_count,
      const CharT* expected_string,
      const CharT* format, Values&&... values) {
   ++testcases;
   bool ok = true;
   std::basic_ostringstream<CharT> os;
   auto count = fmt::printf(os, format, std::forward<Values>(values)...);
   if ((count < 0 || expected_count < 0) && count != expected_count) {
      print("special test for \"%s\" fails,", format);
      print(" fmt returns %d but we expected %d\n", count, expected_count);
      print_values(1, values...);
      return false;
   }
   if (count != expected_count) {
      ok = false;
   }
   std::basic_string<CharT> fmt_str(os.str());
   std::basic_string<CharT> expected_str(expected_string);
   if (fmt_str != expected_str) {
      ok = false;
   }
   if (ok) {
      ++successful; return true;
   } else {
      print("special test for \"%s\" fails:\n", format);
      if (count != expected_count) {
	 print("   fmt returns:           %d\n", count);
	 print("   expected return value: %d\n", expected_count);
      }
      print("   fmt delivers:          \"%s\"\n", fmt_str);
      print("   expected:              \"%s\"\n", expected_str);
      print_values(1, values...);
      return false;
   }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x1d0, %rsp            # imm = 0x1D0
movq %rcx, %rbx
movq %rdx, %r15
movq %rsi, %r14
movl %edi, %ebp
movl %edi, 0x8(%rsp)
movq %rdx, 0x10(%rsp)
incl 0x44c79(%rip)           # 0x4f38c
leaq 0x58(%rsp), %r12
movq %r12, %rdi
callq 0x6490
movq %r12, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x373d4
movl %eax, %r15d
movl %eax, 0x4(%rsp)
orl %ebp, %eax
setns %al
cmpl %ebp, %r15d
sete %cl
orb %al, %cl
je 0xa791
leaq 0x60(%rsp), %rsi
leaq 0x38(%rsp), %rdi
callq 0x65a0
leaq 0x18(%rsp), %rdi
leaq 0xf(%rsp), %rdx
movq %r14, %rsi
callq 0xbaa8
cmpl %ebp, %r15d
sete %r14b
leaq 0x38(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x37829
movl %eax, %ebp
xorb $0x1, %bpl
andb %r14b, %bpl
je 0xa7c7
incl 0x44bfc(%rip)           # 0x4f388
jmp 0xa831
leaq 0x308d7(%rip), %rdi     # 0x3b06f
leaq 0x10(%rsp), %rsi
callq 0x9a22
leaq 0x308e3(%rip), %rdi     # 0x3b08c
leaq 0x4(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x9aa0
movq (%rbx), %rsi
pushq $0x1
popq %rdi
callq 0x377cd
xorl %ebp, %ebp
jmp 0xa845
leaq 0x308e2(%rip), %rdi     # 0x3b0b0
leaq 0x10(%rsp), %rsi
callq 0x9a22
movl 0x4(%rsp), %eax
cmpl 0x8(%rsp), %eax
je 0xa804
leaq 0x308e5(%rip), %rdi     # 0x3b0ce
leaq 0x4(%rsp), %rsi
callq 0x37833
leaq 0x308f2(%rip), %rdi     # 0x3b0ec
leaq 0x8(%rsp), %rsi
callq 0x37833
leaq 0x308ff(%rip), %rdi     # 0x3b10a
leaq 0x38(%rsp), %rsi
callq 0x37845
leaq 0x3090e(%rip), %rdi     # 0x3b12a
leaq 0x18(%rsp), %rsi
callq 0x37845
movq (%rbx), %rsi
pushq $0x1
popq %rdi
callq 0x377cd
leaq 0x18(%rsp), %rdi
callq 0x61a0
leaq 0x38(%rsp), %rdi
callq 0x61a0
leaq 0x58(%rsp), %rdi
callq 0x60b0
movl %ebp, %eax
addq $0x1d0, %rsp            # imm = 0x1D0
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0xa875
jmp 0xa881
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x61a0
leaq 0x38(%rsp), %rdi
callq 0x61a0
jmp 0xa884
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x60b0
movq %rbx, %rdi
callq 0x6630