; assembly | /* r2dec pseudo code output */ | /* bslalg_arrayprimitives.t/none @ 0x4bce10 */ | #include | ; (fcn) sym.void_testCopyConstructWithIterators_int_______bool__bool__bool_ () | uint64_t void_testCopyConstructWithIterators_int_bool_bool_bool_ (uint32_t arg3, uint32_t arg2) { | int64_t var_10h; | uint32_t var_18h; | int64_t var_20h; | int64_t var_28h; | uint32_t var_2ch; | int64_t var_30h; | int64_t var_38h; | int64_t var_40h; | uint32_t var_44h; | int64_t var_48h; | int64_t var_50h; | rdx = arg3; | rsi = arg2; | /* void testCopyConstructWithIterators(bool, bool, bool) */ 0x004bce10 push rbp | 0x004bce11 push r15 | 0x004bce13 push r14 | 0x004bce15 push r13 | 0x004bce17 push r12 | 0x004bce19 push rbx | 0x004bce1a sub rsp, 0x58 | 0x004bce1e mov dword [rsp + 0x2c], edx | *((rsp + 0x2c)) = edx; 0x004bce22 mov dword [rsp + 0x44], esi | *((rsp + 0x44)) = esi; 0x004bce26 cmp byte [rip + 0x25bb69], 0 | | if (*(obj.verbose) != 0) { 0x004bce2d je 0x4bce39 | 0x004bce2f mov edi, 0x4f6973 | 0x004bce34 call 0x401710 | eax = puts ("\t\tfrom same type."); | } 0x004bce39 xor eax, eax | eax = 0; 0x004bce3b jmp 0x4bce6c | goto label_4; | label_1: 0x004bce40 mov edi, 0x74f130 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004bce45 mov rsi, rbx | rsi = rbx; 0x004bce48 call 0x4dd110 | voidverify(int(**)(),char const*) (); 0x004bce4d mov edi, 0x74f130 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004bce52 mov rsi, rbx | rsi = rbx; 0x004bce55 call 0x4dd390 | voidcleanup(int(**)(),char const*) (); 0x004bce5a mov rax, qword [rsp + 0x18] | rax = *((rsp + 0x18)); 0x004bce5f inc rax | rax++; 0x004bce62 cmp rax, 0x1e | | if (rax == 0x1e) { 0x004bce66 je 0x4bd3b6 | goto label_5; | } | label_4: 0x004bce6c mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x004bce71 lea rbx, [rax*8] | rbx = rax*8; 0x004bce79 mov r12, qword [rbx + rbx*4 + 0x4f3c98] | r12 = *((rbx + rbx*4 + 0x4f3c98)); 0x004bce81 mov rdi, r12 | 0x004bce84 call 0x401790 | eax = strlen (*((rbx + rbx*4 + 0x4f3c98))); 0x004bce89 cmp eax, 0x11 | | if (eax >= 0x11) { 0x004bce8c jl 0x4bceb7 | 0x004bce8e mov edi, 0x4f4e04 | 0x004bce93 mov edx, 0x4f4393 | edx = "MAX_SIZE >= (int)std::strlen(SPEC)"; 0x004bce98 mov esi, 0xfe6 | esi = 0xfe6; 0x004bce9d xor eax, eax | eax = 0; 0x004bce9f call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004bcea4 mov eax, dword [rip + 0x25baee] | eax = (anonymous namespace)::testStatus; 0x004bceaa cmp eax, 0x64 | | if (eax > 0x64) { 0x004bcead ja 0x4bceb7 | goto label_6; | } 0x004bceaf inc eax | eax++; 0x004bceb1 mov dword [rip + 0x25bae1], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_6: 0x004bceb7 mov r14d, dword [rbx + rbx*4 + 0x4f3c90] | r14d = *((rbx + rbx*4 + obj.DATA_3)); 0x004bcebf movsxd r15, dword [rbx + rbx*4 + 0x4f3ca0] | r15 = *((rbx + rbx*4 + 0x4f3ca0)); 0x004bcec7 mov ebp, dword [rbx + rbx*4 + 0x4f3ca4] | ebp = *((rbx + rbx*4 + 0x4f3ca4)); 0x004bcece movsxd r13, dword [rbx + rbx*4 + 0x4f3ca8] | r13 = *((rbx + rbx*4 + 0x4f3ca8)); 0x004bced6 mov rbx, qword [rbx + rbx*4 + 0x4f3cb0] | rbx = *((rbx + rbx*4 + 0x4f3cb0)); 0x004bcede cmp byte [rip + 0x25baab], 0 | | if (*(obj.veryVerbose) != 0) { 0x004bcee5 je 0x4bcf06 | 0x004bcee7 mov qword [rsp], rbx | *(rsp) = rbx; 0x004bceeb mov edi, 0x4f5c41 | 0x004bcef0 mov esi, r14d | esi = r14d; 0x004bcef3 mov rdx, r12 | rdx = r12; 0x004bcef6 mov ecx, r15d | ecx = r15d; 0x004bcef9 mov r8d, ebp | r8d = ebp; 0x004bcefc mov r9d, r13d | r9d = r13d; 0x004bceff xor eax, eax | eax = 0; 0x004bcf01 call 0x401680 | printf ("LINE = %d, SPEC = %s, SRC = %d, NE = %d, DST = %d, EXP = %s\n"); | } 0x004bcf06 mov dword [rsp + 0x10], r14d | *((rsp + 0x10)) = r14d; 0x004bcf0b mov qword [rsp + 0x20], rbp | *((rsp + 0x20)) = rbp; 0x004bcf10 mov edi, 0x74f130 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004bcf15 mov rsi, r12 | rsi = r12; 0x004bcf18 call 0x4dd010 | int(*&gg(int(**)(),char const*))() (); 0x004bcf1d mov edi, 0x74f130 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004bcf22 mov rsi, r12 | rsi = r12; 0x004bcf25 call 0x4dd110 | voidverify(int(**)(),char const*) (); 0x004bcf2a mov r12d, dword [rip + 0x25ba73] | r12d = numCopyCtorCalls; 0x004bcf31 mov r14d, dword [rip + 0x25ba74] | r14d = numCharCtorCalls; 0x004bcf38 cmp byte [rsp + 0x2c], 0 | | if (*((rsp + 0x2c)) == 0) { 0x004bcf3d je 0x4bd020 | goto label_7; | } 0x004bcf43 cmp byte [rip + 0x25ba46], 0 | | if (*(obj.veryVerbose) != 0) { 0x004bcf4a je 0x4bcf5f | 0x004bcf4c cmp dword [rip + 0x25b5b5], 0 | | if (*(obj.testCopyConstructWithIterators_int_______bool__bool__bool_::firstTime) == 0) { 0x004bcf53 je 0x4bcf5f | goto label_8; | } 0x004bcf55 mov edi, 0x4f43ea | 0x004bcf5a call 0x401710 | puts ("\t\tBSLMA EXCEPTION TEST -- (ENABLED) --"); | } | label_8: 0x004bcf5f mov dword [rip + 0x25b59f], 0 | *(obj.testCopyConstructWithIterators_int_______bool__bool__bool_::firstTime) = 0; 0x004bcf69 cmp byte [rip + 0x25ba25], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004bcf70 je 0x4bcf7c | 0x004bcf72 mov edi, 0x4f4411 | 0x004bcf77 call 0x401710 | puts ("\t\tBegin bslma exception test."); | } 0x004bcf7c mov rax, qword [rip + 0x25b89d] | rax = Z; 0x004bcf83 mov qword [rsp + 0x30], 0x4f69e0 | *((rsp + 0x30)) = vtable.BloombergLP::bslma::TestAllocator_Proxy_BloombergLP::bslma::TestAllocator_.0; 0x004bcf8c mov qword [rsp + 0x38], rax | *((rsp + 0x38)) = rax; 0x004bcf91 mov qword [rax + 0x20], 0 | *((rax + 0x20)) = 0; 0x004bcf99 test rax, rax | 0x004bcf9c je 0x4bd0e5 | | while (rax != 0) { | label_0: 0x004bcfa2 lea rsi, [r15*8 + 0x74f130] | rsi = r15*8 + obj_testCopyConstructWithIterators_int_______bool__bool__bool_::u; 0x004bcfaa mov rax, qword [rsp + 0x20] | rax = *((rsp + 0x20)); 0x004bcfaf add eax, r15d | eax += r15d; 0x004bcfb2 cdqe | rax = (int64_t) eax; 0x004bcfb4 lea rdx, [rax*8 + 0x74f130] | rdx = rax*8 + obj_testCopyConstructWithIterators_int_______bool__bool__bool_::u; 0x004bcfbc sub rdx, rsi | rdx -= rsi; | if (rdx != 0) { 0x004bcfbf je 0x4bcfce | 0x004bcfc1 lea rdi, [r13*8 + 0x74f130] | 0x004bcfc9 call 0x401930 | memcpy (r13*8 + obj.testCopyConstructWithIterators_int_______bool__bool__bool_::u, rsi, rdx); | } 0x004bcfce mov rax, qword [rsp + 0x30] | rax = *((rsp + 0x30)); 0x004bcfd3 lea rdi, [rsp + 0x30] | rdi = rsp + 0x30; 0x004bcfd8 mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004bcfdf call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x004bcfe2 cmp byte [rip + 0x25b9ac], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004bcfe9 je 0x4bcff5 | 0x004bcfeb mov edi, 0x4f4571 | 0x004bcff0 call 0x401710 | puts ("\t\tEnd bslma exception test."); | } 0x004bcff5 cmp byte [rip + 0x25b994], 0 | | if (*(obj.veryVerbose) == 0) { 0x004bcffc je 0x4bd2da | goto label_9; | } 0x004bd002 mov edi, 0xa | 0x004bd007 call 0x401720 | putchar (0xa); 0x004bd00c mov ebp, dword [rsp + 0x10] | ebp = *((rsp + 0x10)); 0x004bd010 jmp 0x4bd2b1 | goto label_10; | label_7: 0x004bd020 cmp qword [rip + 0x25b7f8], 0 | | if (*(obj.Z) == 0) { 0x004bd028 jne 0x4bd040 | 0x004bd02a mov rax, qword [rip + 0x294287] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bd031 test rax, rax | | if (rax != 0) { 0x004bd034 jne 0x4bd040 | goto label_11; | } 0x004bd036 call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004bd03b nop dword [rax + rax] | | } | label_11: 0x004bd040 cmp qword [rsp + 0x18], 6 | 0x004bd046 mov ebp, dword [rsp + 0x10] | ebp = *((rsp + 0x10)); | if (*((rsp + 0x18)) < 6) { 0x004bd04a jb 0x4bd2b1 | goto label_10; | } 0x004bd050 lea rax, [r15*8 + 0x74f130] | rax = r15*8 + obj_testCopyConstructWithIterators_int_______bool__bool__bool_::u; 0x004bd058 lea rcx, [r13*8 + 0x74f130] | rcx = r13*8 + obj_testCopyConstructWithIterators_int_______bool__bool__bool_::u; 0x004bd060 mov rsi, qword [rsp + 0x20] | rsi = *((rsp + 0x20)); 0x004bd065 lea edx, [rsi + r15] | edx = rsi + r15; 0x004bd069 movsxd r9, edx | r9 = (int64_t) edx; 0x004bd06c shl r9, 3 | r9 <<= 3; 0x004bd070 lea rdi, [r15*8] | rdi = r15*8; 0x004bd078 mov r10, r9 | r10 = r9; 0x004bd07b sub r10, rdi | r10 -= rdi; 0x004bd07e add r10, 0xfffffffffffffff8 | r10 += 0xfffffffffffffff8; 0x004bd082 cmp r10, 0x18 | | if (r10 < 0x18) { 0x004bd086 jb 0x4bd290 | goto label_12; | } 0x004bd08c mov dword [rsp + 0x28], r14d | *((rsp + 0x28)) = r14d; 0x004bd091 mov r11, rbx | r11 = rbx; 0x004bd094 lea rbp, [r13*8 + 0x74f130] | rbp = r13*8 + obj_testCopyConstructWithIterators_int_______bool__bool__bool_::u; 0x004bd09c lea edx, [rsi + r15] | edx = rsi + r15; 0x004bd0a0 movsxd rdx, edx | rdx = (int64_t) edx; 0x004bd0a3 lea rbx, [rdx*8 + 0x74f130] | rbx = rdx*8 + obj_testCopyConstructWithIterators_int_______bool__bool__bool_::u; 0x004bd0ab cmp rbp, rbx | | if (rbp >= rbx) { 0x004bd0ae jae 0x4bd157 | goto label_13; | } 0x004bd0b4 shl rdx, 3 | rdx <<= 3; 0x004bd0b8 sub rdx, rdi | rdx -= rdi; 0x004bd0bb lea rdx, [rdx + r13*8 + 0x74f130] | rdx = rdx + r13*8 + obj_testCopyConstructWithIterators_int_______bool__bool__bool_::u; 0x004bd0c3 lea rbp, [r15*8 + 0x74f130] | rbp = r15*8 + obj_testCopyConstructWithIterators_int_______bool__bool__bool_::u; 0x004bd0cb cmp rbp, rdx | | if (rbp >= rdx) { 0x004bd0ce jae 0x4bd157 | goto label_13; | } 0x004bd0d4 mov rbx, r11 | rbx = r11; 0x004bd0d7 mov r14d, dword [rsp + 0x28] | r14d = *((rsp + 0x28)); 0x004bd0dc mov ebp, dword [rsp + 0x10] | ebp = *((rsp + 0x10)); 0x004bd0e0 jmp 0x4bd290 | goto label_12; 0x004bd0e5 mov ebp, 1 | 0x004bd0ea mov rax, qword [rip + 0x2941c7] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bd0f1 test rax, rax | 0x004bd0f4 jne 0x4bcfa2 | | } 0x004bd0fa call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004bd0ff jmp 0x4bcfa2 | goto label_0; | label_13: 0x004bd157 shr r10, 3 | r10 >>= 3; 0x004bd15b inc r10 | r10++; 0x004bd15e mov r8, r10 | r8 = r10; 0x004bd161 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004bd165 lea rdx, [r8 - 4] | rdx = r8 - 4; 0x004bd169 mov rbx, rdx | rbx = rdx; 0x004bd16c shr rbx, 2 | rbx >>= 2; 0x004bd170 inc rbx | rbx++; 0x004bd173 mov ebp, ebx | 0x004bd175 and ebp, 3 | ebp &= 3; 0x004bd178 cmp rdx, 0xc | | if (rdx < 0xc) { 0x004bd17c jae 0x4bd185 | 0x004bd17e xor edx, edx | edx = 0; 0x004bd180 jmp 0x4bd226 | goto label_14; | } 0x004bd185 and rbx, 0xfffffffffffffffc | rbx &= 0xfffffffffffffffc; 0x004bd189 neg rbx | rbx = -rbx; 0x004bd18c xor edx, edx | edx = 0; 0x004bd18e nop | | do { 0x004bd190 movups xmm0, xmmword [rdi + rdx*8 + 0x74f130] | __asm ("movups xmm0, xmmword [rdi + rdx*8 + obj.testCopyConstructWithIterators_int_______bool__bool__bool_::u]"); 0x004bd198 movups xmm1, xmmword [rdi + rdx*8 + 0x74f140] | __asm ("movups xmm1, xmmword [rdi + rdx*8 + 0x74f140]"); 0x004bd1a0 lea rsi, [r13*8] | rsi = r13*8; 0x004bd1a8 movups xmmword [rsi + rdx*8 + 0x74f130], xmm0 | __asm ("movups xmmword [rsi + rdx*8 + obj.testCopyConstructWithIterators_int_______bool__bool__bool_::u], xmm0"); 0x004bd1b0 movups xmmword [rsi + rdx*8 + 0x74f140], xmm1 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f140], xmm1"); 0x004bd1b8 movups xmm0, xmmword [rdi + rdx*8 + 0x74f150] | __asm ("movups xmm0, xmmword [rdi + rdx*8 + 0x74f150]"); 0x004bd1c0 movups xmm1, xmmword [rdi + rdx*8 + 0x74f160] | __asm ("movups xmm1, xmmword [rdi + rdx*8 + 0x74f160]"); 0x004bd1c8 movups xmmword [rsi + rdx*8 + 0x74f150], xmm0 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f150], xmm0"); 0x004bd1d0 movups xmmword [rsi + rdx*8 + 0x74f160], xmm1 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f160], xmm1"); 0x004bd1d8 movups xmm0, xmmword [rdi + rdx*8 + 0x74f170] | __asm ("movups xmm0, xmmword [rdi + rdx*8 + 0x74f170]"); 0x004bd1e0 movups xmm1, xmmword [rdi + rdx*8 + 0x74f180] | __asm ("movups xmm1, xmmword [rdi + rdx*8 + 0x74f180]"); 0x004bd1e8 movups xmmword [rsi + rdx*8 + 0x74f170], xmm0 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f170], xmm0"); 0x004bd1f0 movups xmmword [rsi + rdx*8 + 0x74f180], xmm1 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f180], xmm1"); 0x004bd1f8 movups xmm0, xmmword [rdi + rdx*8 + 0x74f190] | __asm ("movups xmm0, xmmword [rdi + rdx*8 + 0x74f190]"); 0x004bd200 movups xmm1, xmmword [rdi + rdx*8 + 0x74f1a0] | __asm ("movups xmm1, xmmword [rdi + rdx*8 + 0x74f1a0]"); 0x004bd208 movups xmmword [rsi + rdx*8 + 0x74f190], xmm0 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f190], xmm0"); 0x004bd210 movups xmmword [rsi + rdx*8 + 0x74f1a0], xmm1 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f1a0], xmm1"); 0x004bd218 add rdx, 0x10 | rdx += 0x10; 0x004bd21c add rbx, 4 | rbx += 4; 0x004bd220 jne 0x4bd190 | | } while (rbx != 0); | label_14: 0x004bd226 test rbp, rbp | | if (rbp == 0) { 0x004bd229 je 0x4bd26b | goto label_15; | } 0x004bd22b shl r13, 3 | r13 <<= 3; 0x004bd22f lea rbx, [r13 + rdx*8 + 0x74f140] | rbx = r13 + rdx*8 + 0x74f140; 0x004bd237 lea rdx, [rdi + rdx*8 + 0x74f140] | rdx = rdi + rdx*8 + 0x74f140; 0x004bd23f shl rbp, 5 | rbp <<= 5; 0x004bd243 xor edi, edi | edi = 0; 0x004bd245 nop word cs:[rax + rax] | 0x004bd24f nop | | do { 0x004bd250 movups xmm0, xmmword [rdx + rdi - 0x10] | __asm ("movups xmm0, xmmword [rdx + rdi - 0x10]"); 0x004bd255 movups xmm1, xmmword [rdx + rdi] | __asm ("movups xmm1, xmmword [rdx + rdi]"); 0x004bd259 movups xmmword [rbx + rdi - 0x10], xmm0 | __asm ("movups xmmword [rbx + rdi - 0x10], xmm0"); 0x004bd25e movups xmmword [rbx + rdi], xmm1 | __asm ("movups xmmword [rbx + rdi], xmm1"); 0x004bd262 add rdi, 0x20 | rdi += 0x20; 0x004bd266 cmp rbp, rdi | 0x004bd269 jne 0x4bd250 | | } while (rbp != rdi); | label_15: 0x004bd26b cmp r10, r8 | 0x004bd26e mov rbx, r11 | rbx = r11; 0x004bd271 mov r14d, dword [rsp + 0x28] | r14d = *((rsp + 0x28)); 0x004bd276 mov ebp, dword [rsp + 0x10] | ebp = *((rsp + 0x10)); | if (r10 == r8) { 0x004bd27a je 0x4bd2b1 | goto label_10; | } 0x004bd27c lea rax, [rax + r8*8] | rax = rax + r8*8; 0x004bd280 lea rcx, [rcx + r8*8] | rcx = rcx + r8*8; 0x004bd284 nop word cs:[rax + rax] | 0x004bd28e nop | | label_12: 0x004bd290 sub r9, rax | r9 -= rax; 0x004bd293 lea rdx, [r9 + 0x74f130] | rdx = r9 + obj_testCopyConstructWithIterators_int_______bool__bool__bool_::u; 0x004bd29a xor esi, esi | esi = 0; 0x004bd29c nop dword [rax] | | do { 0x004bd2a0 mov rdi, qword [rax + rsi] | rdi = *((rax + rsi)); 0x004bd2a4 mov qword [rcx + rsi], rdi | *((rcx + rsi)) = rdi; 0x004bd2a8 add rsi, 8 | rsi += 8; 0x004bd2ac cmp rdx, rsi | 0x004bd2af jne 0x4bd2a0 | | } while (rdx != rsi); | label_10: 0x004bd2b1 cmp byte [rip + 0x25b6d8], 0 | | if (*(obj.veryVerbose) != 0) { 0x004bd2b8 je 0x4bd2da | 0x004bd2ba mov edx, dword [rip + 0x25b6e4] | edx = numCopyCtorCalls; 0x004bd2c0 sub edx, r12d | edx -= r12d; 0x004bd2c3 mov ecx, dword [rip + 0x25b6e3] | ecx = numCharCtorCalls; 0x004bd2c9 sub ecx, r14d | ecx -= r14d; 0x004bd2cc mov edi, 0x4f5db4 | 0x004bd2d1 mov esi, ebp | esi = ebp; 0x004bd2d3 xor eax, eax | eax = 0; 0x004bd2d5 call 0x401680 | eax = printf ("LINE = %d, #copy ctors = %d, #char ctors = %d.\n"); | } | label_9: 0x004bd2da cmp byte [rsp + 0x44], 0 | | if (*((rsp + 0x44)) == 0) { 0x004bd2df je 0x4bd340 | goto label_16; | } 0x004bd2e1 cmp r12d, dword [rip + 0x25b6bc] | | if (r12d != *(obj.numCopyCtorCalls)) { 0x004bd2e8 je 0x4bd313 | 0x004bd2ea mov edi, 0x4f4e04 | 0x004bd2ef mov edx, 0x4f5176 | edx = "NUM_COPIES == numCopyCtorCalls"; 0x004bd2f4 mov esi, 0x1005 | esi = 0x1005; 0x004bd2f9 xor eax, eax | eax = 0; 0x004bd2fb call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004bd300 mov eax, dword [rip + 0x25b692] | eax = (anonymous namespace)::testStatus; 0x004bd306 cmp eax, 0x64 | | if (eax > 0x64) { 0x004bd309 ja 0x4bd313 | goto label_17; | } 0x004bd30b inc eax | eax++; 0x004bd30d mov dword [rip + 0x25b685], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_17: 0x004bd313 cmp r14d, dword [rip + 0x25b692] | | if (r14d == *(obj.numCharCtorCalls)) { 0x004bd31a je 0x4bce40 | goto label_1; | } 0x004bd320 mov edi, 0x4f4e04 | edi = "Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"; 0x004bd325 mov edx, 0x4f5de4 | edx = "NUM_CTORS == numCharCtorCalls"; 0x004bd32a mov esi, 0x1006 | esi = 0x1006; 0x004bd32f jmp 0x4bd393 | goto label_18; | label_16: 0x004bd340 add r12d, dword [rsp + 0x20] | r12d += *((rsp + 0x20)); 0x004bd345 cmp r12d, dword [rip + 0x25b658] | | if (r12d > *(obj.numCopyCtorCalls)) { 0x004bd34c jle 0x4bd377 | 0x004bd34e mov edi, 0x4f4e04 | 0x004bd353 mov edx, 0x4f5e02 | edx = "NUM_COPIES + NE <= numCopyCtorCalls"; 0x004bd358 mov esi, 0x1009 | esi = 0x1009; 0x004bd35d xor eax, eax | eax = 0; 0x004bd35f call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004bd364 mov eax, dword [rip + 0x25b62e] | eax = (anonymous namespace)::testStatus; 0x004bd36a cmp eax, 0x64 | | if (eax > 0x64) { 0x004bd36d ja 0x4bd377 | goto label_19; | } 0x004bd36f inc eax | eax++; 0x004bd371 mov dword [rip + 0x25b621], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_19: 0x004bd377 cmp r14d, dword [rip + 0x25b62e] | | if (r14d == *(obj.numCharCtorCalls)) { 0x004bd37e je 0x4bce40 | goto label_1; | } 0x004bd384 mov edi, 0x4f4e04 | 0x004bd389 mov edx, 0x4f5de4 | edx = "NUM_CTORS == numCharCtorCalls"; 0x004bd38e mov esi, 0x100a | esi = 0x100a; | label_18: 0x004bd393 xor eax, eax | eax = 0; 0x004bd395 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004bd39a mov eax, dword [rip + 0x25b5f8] | eax = (anonymous namespace)::testStatus; 0x004bd3a0 cmp eax, 0x64 | | if (eax > 0x64) { 0x004bd3a3 ja 0x4bce40 | goto label_1; | } 0x004bd3a9 inc eax | eax++; 0x004bd3ab mov dword [rip + 0x25b5e7], eax | *(obj._anonymous_namespace_::testStatus) = eax; 0x004bd3b1 jmp 0x4bce40 | goto label_1; | label_5: 0x004bd3b6 cmp byte [rip + 0x25b5d9], 0 | | if (*(obj.verbose) != 0) { 0x004bd3bd je 0x4bd3c9 | 0x004bd3bf mov edi, 0x4f695c | 0x004bd3c4 call 0x401710 | puts ("\t\tfrom different type."); | } 0x004bd3c9 xor r13d, r13d | r13d = 0; 0x004bd3cc jmp 0x4bd3f7 | goto label_20; | label_2: 0x004bd3d0 mov edi, 0x74f130 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004bd3d5 mov rsi, rbp | rsi = rbp; 0x004bd3d8 call 0x4dd110 | voidverify(int(**)(),char const*) (); 0x004bd3dd mov edi, 0x74f130 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004bd3e2 mov rsi, rbp | rsi = rbp; 0x004bd3e5 call 0x4dd390 | voidcleanup(int(**)(),char const*) (); 0x004bd3ea inc r13 | r13++; 0x004bd3ed cmp r13, 0x1e | | if (r13 == 0x1e) { 0x004bd3f1 je 0x4bd91a | goto label_21; | } | label_20: 0x004bd3f7 lea rbp, [r13*8] | rbp = r13*8; 0x004bd3ff mov r12, qword [rbp + rbp*4 + 0x4f3c98] | r12 = *((rbp + rbp*4 + 0x4f3c98)); 0x004bd407 mov rdi, r12 | 0x004bd40a call 0x401790 | eax = strlen (*((rbp + rbp*4 + 0x4f3c98))); 0x004bd40f cmp eax, 0x11 | | if (eax >= 0x11) { 0x004bd412 jl 0x4bd43d | 0x004bd414 mov edi, 0x4f4e04 | 0x004bd419 mov edx, 0x4f4393 | edx = "MAX_SIZE >= (int)std::strlen(SPEC)"; 0x004bd41e mov esi, 0x1019 | esi = 0x1019; 0x004bd423 xor eax, eax | eax = 0; 0x004bd425 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004bd42a mov eax, dword [rip + 0x25b568] | eax = (anonymous namespace)::testStatus; 0x004bd430 cmp eax, 0x64 | | if (eax > 0x64) { 0x004bd433 ja 0x4bd43d | goto label_22; | } 0x004bd435 inc eax | eax++; 0x004bd437 mov dword [rip + 0x25b55b], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_22: 0x004bd43d mov rdi, r12 | 0x004bd440 call 0x401790 | rax = strlen (r12); 0x004bd445 cmp rax, 0x14 | | if (rax >= 0x14) { 0x004bd449 jb 0x4bd474 | 0x004bd44b mov edi, 0x4f4e04 | 0x004bd450 mov edx, 0x4f5e26 | edx = "SPEC_CE_LEN > std::strlen(SPEC)"; 0x004bd455 mov esi, 0x101c | esi = 0x101c; 0x004bd45a xor eax, eax | eax = 0; 0x004bd45c call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004bd461 mov eax, dword [rip + 0x25b531] | eax = (anonymous namespace)::testStatus; 0x004bd467 cmp eax, 0x64 | | if (eax > 0x64) { 0x004bd46a ja 0x4bd474 | goto label_23; | } 0x004bd46c inc eax | eax++; 0x004bd46e mov dword [rip + 0x25b524], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_23: 0x004bd474 mov qword [rsp + 0x18], r13 | *((rsp + 0x18)) = r13; 0x004bd479 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004bd47c movaps xmmword [rsp + 0x30], xmm0 | *((rsp + 0x30)) = xmm0; 0x004bd481 mov dword [rsp + 0x40], 0 | *((rsp + 0x40)) = 0; 0x004bd489 mov al, byte [r12] | al = *(r12); 0x004bd48d test al, al | | if (al == 0) { 0x004bd48f je 0x4bd4b1 | goto label_24; | } 0x004bd491 xor ecx, ecx | ecx = 0; 0x004bd493 nop word cs:[rax + rax] | 0x004bd49d nop dword [rax] | | do { 0x004bd4a0 mov byte [rsp + rcx + 0x30], al | *((rsp + rcx + 0x30)) = al; 0x004bd4a4 movzx eax, byte [r12 + rcx + 1] | eax = *((r12 + rcx + 1)); 0x004bd4aa inc rcx | rcx++; 0x004bd4ad test al, al | 0x004bd4af jne 0x4bd4a0 | | } while (al != 0); | label_24: 0x004bd4b1 mov r14d, dword [rbp + rbp*4 + 0x4f3c90] | r14d = *((rbp + rbp*4 + obj.DATA_3)); 0x004bd4b9 movsxd rbx, dword [rbp + rbp*4 + 0x4f3ca0] | rbx = *((rbp + rbp*4 + 0x4f3ca0)); 0x004bd4c1 movsxd r15, dword [rbp + rbp*4 + 0x4f3ca4] | r15 = *((rbp + rbp*4 + 0x4f3ca4)); 0x004bd4c9 movsxd r13, dword [rbp + rbp*4 + 0x4f3ca8] | r13 = *((rbp + rbp*4 + 0x4f3ca8)); 0x004bd4d1 mov rbp, qword [rbp + rbp*4 + 0x4f3cb0] | rbp = *((rbp + rbp*4 + 0x4f3cb0)); 0x004bd4d9 cmp byte [rip + 0x25b4b0], 0 | | if (*(obj.veryVerbose) != 0) { 0x004bd4e0 je 0x4bd500 | 0x004bd4e2 mov qword [rsp], rbp | *(rsp) = rbp; 0x004bd4e6 mov edi, 0x4f5c41 | 0x004bd4eb mov esi, r14d | esi = r14d; 0x004bd4ee mov rdx, r12 | rdx = r12; 0x004bd4f1 mov ecx, ebx | ecx = ebx; 0x004bd4f3 mov r8d, r15d | r8d = r15d; 0x004bd4f6 mov r9d, r13d | r9d = r13d; 0x004bd4f9 xor eax, eax | eax = 0; 0x004bd4fb call 0x401680 | printf ("LINE = %d, SPEC = %s, SRC = %d, NE = %d, DST = %d, EXP = %s\n"); | } 0x004bd500 mov edi, 0x74f130 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004bd505 mov rsi, r12 | rsi = r12; 0x004bd508 call 0x4dd010 | int(*&gg(int(**)(),char const*))() (); 0x004bd50d mov edi, 0x74f130 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004bd512 mov rsi, r12 | rsi = r12; 0x004bd515 call 0x4dd110 | voidverify(int(**)(),char const*) (); 0x004bd51a mov r12d, dword [rip + 0x25b483] | r12d = numCopyCtorCalls; 0x004bd521 mov eax, dword [rip + 0x25b485] | eax = numCharCtorCalls; 0x004bd527 mov dword [rsp + 0x20], eax | *((rsp + 0x20)) = eax; 0x004bd52b cmp byte [rsp + 0x2c], 0 | | if (*((rsp + 0x2c)) == 0) { 0x004bd530 je 0x4bd6f0 | goto label_25; | } 0x004bd536 cmp byte [rip + 0x25b453], 0 | | if (*(obj.veryVerbose) != 0) { 0x004bd53d je 0x4bd552 | 0x004bd53f cmp dword [rip + 0x25afc6], 0 | | if (*(0x0071850c) == 0) { 0x004bd546 je 0x4bd552 | goto label_26; | } 0x004bd548 mov edi, 0x4f43ea | 0x004bd54d call 0x401710 | puts ("\t\tBSLMA EXCEPTION TEST -- (ENABLED) --"); | } | label_26: 0x004bd552 mov dword [rip + 0x25afb0], 0 | *(0x0071850c) = 0; 0x004bd55c cmp byte [rip + 0x25b432], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004bd563 je 0x4bd56f | 0x004bd565 mov edi, 0x4f4411 | 0x004bd56a call 0x401710 | puts ("\t\tBegin bslma exception test."); | } 0x004bd56f mov rax, qword [rip + 0x25b2aa] | rax = Z; 0x004bd576 mov qword [rsp + 0x48], 0x4f69e0 | *((rsp + 0x48)) = vtable.BloombergLP::bslma::TestAllocator_Proxy_BloombergLP::bslma::TestAllocator_.0; 0x004bd57f mov qword [rsp + 0x50], rax | *((rsp + 0x50)) = rax; 0x004bd584 mov qword [rax + 0x20], 0 | *((rax + 0x20)) = 0; 0x004bd58c test rax, rax | | if (rax == 0) { 0x004bd58f je 0x4bd89a | goto label_27; | } | label_3: 0x004bd595 cmp qword [rsp + 0x18], 6 | | if (*((rsp + 0x18)) < 6) { 0x004bd59b jb 0x4bd6a8 | goto label_28; | } 0x004bd5a1 add r15d, ebx | r15d += ebx; 0x004bd5a4 movsxd rax, r15d | rax = (int64_t) r15d; 0x004bd5a7 lea rcx, [rsp + rbx + 0x30] | rcx = rsp + rbx + 0x30; 0x004bd5ac lea rsi, [r13*8 + 0x74f130] | rsi = r13*8 + obj_testCopyConstructWithIterators_int_______bool__bool__bool_::u; 0x004bd5b4 mov edx, eax | edx = eax; 0x004bd5b6 sub edx, ebx | edx -= ebx; 0x004bd5b8 not rbx | rbx = ~rbx; 0x004bd5bb add rbx, rax | rbx += rax; 0x004bd5be and rdx, 7 | rdx &= 7; | if (rdx == 0) { 0x004bd5c2 je 0x4bd5eb | goto label_29; | } 0x004bd5c4 nop word cs:[rax + rax] | 0x004bd5ce nop | | do { 0x004bd5d0 movsx rdi, byte [rcx] | rdi = *(rcx); 0x004bd5d4 mov rdi, qword [rdi*8 + 0x7171d0] | rdi = *((rdi*8 + obj.funcPtrArray)); 0x004bd5dc mov qword [rsi], rdi | *(rsi) = rdi; 0x004bd5df inc rcx | rcx++; 0x004bd5e2 add rsi, 8 | rsi += 8; 0x004bd5e6 dec rdx | rdx--; 0x004bd5e9 jne 0x4bd5d0 | | } while (rdx != 0); | label_29: 0x004bd5eb cmp rbx, 7 | | if (rbx < 7) { 0x004bd5ef jb 0x4bd6a8 | goto label_28; | } 0x004bd5f5 lea rax, [rsp + rax + 0x30] | rax = rsp + rax + 0x30; 0x004bd5fa xor edi, edi | edi = 0; 0x004bd5fc nop dword [rax] | | do { 0x004bd600 movsx rdx, byte [rcx + rdi] | rdx = *((rcx + rdi)); 0x004bd605 mov rdx, qword [rdx*8 + 0x7171d0] | rdx = *((rdx*8 + obj.funcPtrArray)); 0x004bd60d mov qword [rsi + rdi*8], rdx | *((rsi + rdi*8)) = rdx; 0x004bd611 movsx rdx, byte [rcx + rdi + 1] | rdx = *((rcx + rdi + 1)); 0x004bd617 mov rdx, qword [rdx*8 + 0x7171d0] | rdx = *((rdx*8 + obj.funcPtrArray)); 0x004bd61f mov qword [rsi + rdi*8 + 8], rdx | *((rsi + rdi*8 + 8)) = rdx; 0x004bd624 movsx rdx, byte [rcx + rdi + 2] | rdx = *((rcx + rdi + 2)); 0x004bd62a mov rdx, qword [rdx*8 + 0x7171d0] | rdx = *((rdx*8 + obj.funcPtrArray)); 0x004bd632 mov qword [rsi + rdi*8 + 0x10], rdx | *((rsi + rdi*8 + 0x10)) = rdx; 0x004bd637 movsx rdx, byte [rcx + rdi + 3] | rdx = *((rcx + rdi + 3)); 0x004bd63d mov rdx, qword [rdx*8 + 0x7171d0] | rdx = *((rdx*8 + obj.funcPtrArray)); 0x004bd645 mov qword [rsi + rdi*8 + 0x18], rdx | *((rsi + rdi*8 + 0x18)) = rdx; 0x004bd64a movsx rdx, byte [rcx + rdi + 4] | rdx = *((rcx + rdi + 4)); 0x004bd650 mov rdx, qword [rdx*8 + 0x7171d0] | rdx = *((rdx*8 + obj.funcPtrArray)); 0x004bd658 mov qword [rsi + rdi*8 + 0x20], rdx | *((rsi + rdi*8 + 0x20)) = rdx; 0x004bd65d movsx rdx, byte [rcx + rdi + 5] | rdx = *((rcx + rdi + 5)); 0x004bd663 mov rdx, qword [rdx*8 + 0x7171d0] | rdx = *((rdx*8 + obj.funcPtrArray)); 0x004bd66b mov qword [rsi + rdi*8 + 0x28], rdx | *((rsi + rdi*8 + 0x28)) = rdx; 0x004bd670 movsx rdx, byte [rcx + rdi + 6] | rdx = *((rcx + rdi + 6)); 0x004bd676 mov rdx, qword [rdx*8 + 0x7171d0] | rdx = *((rdx*8 + obj.funcPtrArray)); 0x004bd67e mov qword [rsi + rdi*8 + 0x30], rdx | *((rsi + rdi*8 + 0x30)) = rdx; 0x004bd683 movsx rdx, byte [rcx + rdi + 7] | rdx = *((rcx + rdi + 7)); 0x004bd689 mov rdx, qword [rdx*8 + 0x7171d0] | rdx = *((rdx*8 + obj.funcPtrArray)); 0x004bd691 mov qword [rsi + rdi*8 + 0x38], rdx | *((rsi + rdi*8 + 0x38)) = rdx; 0x004bd696 lea rdx, [rcx + rdi + 8] | rdx = rcx + rdi + 8; 0x004bd69b add rdi, 8 | rdi += 8; 0x004bd69f cmp rdx, rax | 0x004bd6a2 jne 0x4bd600 | | } while (rdx != rax); | label_28: 0x004bd6a8 mov rax, qword [rsp + 0x48] | rax = *((rsp + 0x48)); 0x004bd6ad lea rdi, [rsp + 0x48] | rdi = rsp + 0x48; 0x004bd6b2 mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004bd6b9 call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x004bd6bc cmp byte [rip + 0x25b2d2], 0 | 0x004bd6c3 mov r13, qword [rsp + 0x18] | r13 = *((rsp + 0x18)); | if (*(obj.veryVeryVerbose) != 0) { 0x004bd6c8 je 0x4bd6d4 | 0x004bd6ca mov edi, 0x4f4571 | 0x004bd6cf call 0x401710 | puts ("\t\tEnd bslma exception test."); | } 0x004bd6d4 cmp byte [rip + 0x25b2b5], 0 | | if (*(obj.veryVerbose) == 0) { 0x004bd6db je 0x4bd85b | goto label_30; | } 0x004bd6e1 mov edi, 0xa | 0x004bd6e6 call 0x401720 | putchar (0xa); 0x004bd6eb jmp 0x4bd830 | goto label_31; | label_25: 0x004bd6f0 cmp qword [rip + 0x25b128], 0 | 0x004bd6f8 mov rcx, r13 | rcx = r13; | if (*(obj.Z) == 0) { 0x004bd6fb jne 0x4bd720 | 0x004bd6fd mov rax, qword [rip + 0x293bb4] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bd704 test rax, rax | | if (rax != 0) { 0x004bd707 jne 0x4bd720 | goto label_32; | } 0x004bd709 call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004bd70e mov rcx, r13 | rcx = r13; 0x004bd711 nop word cs:[rax + rax] | 0x004bd71b nop dword [rax + rax] | | } | label_32: 0x004bd720 mov r13, qword [rsp + 0x18] | r13 = *((rsp + 0x18)); 0x004bd725 cmp r13, 6 | | if (r13 < 6) { 0x004bd729 jb 0x4bd830 | goto label_31; | } 0x004bd72f add r15, rbx | r15 += rbx; 0x004bd732 lea rax, [rcx*8 + 0x74f130] | rax = rcx*8 + obj_testCopyConstructWithIterators_int_______bool__bool__bool_::u; 0x004bd73a lea rcx, [rsp + rbx + 0x30] | rcx = rsp + rbx + 0x30; 0x004bd73f mov edx, r15d | edx = r15d; 0x004bd742 sub edx, ebx | edx -= ebx; 0x004bd744 not rbx | rbx = ~rbx; 0x004bd747 add rbx, r15 | rbx += r15; 0x004bd74a and rdx, 7 | rdx &= 7; | if (rdx == 0) { 0x004bd74e je 0x4bd76b | goto label_33; | } | do { 0x004bd750 movsx rdi, byte [rcx] | rdi = *(rcx); 0x004bd754 mov rdi, qword [rdi*8 + 0x7171d0] | rdi = *((rdi*8 + obj.funcPtrArray)); 0x004bd75c mov qword [rax], rdi | *(rax) = rdi; 0x004bd75f inc rcx | rcx++; 0x004bd762 add rax, 8 | rax += 8; 0x004bd766 dec rdx | rdx--; 0x004bd769 jne 0x4bd750 | | } while (rdx != 0); | label_33: 0x004bd76b cmp rbx, 7 | | if (rbx < 7) { 0x004bd76f jb 0x4bd830 | goto label_31; | } 0x004bd775 lea rdx, [rsp + r15 + 0x30] | rdx = rsp + r15 + 0x30; 0x004bd77a xor ebx, ebx | ebx = 0; 0x004bd77c nop dword [rax] | | do { 0x004bd780 movsx rdi, byte [rcx + rbx] | rdi = *((rcx + rbx)); 0x004bd785 mov rdi, qword [rdi*8 + 0x7171d0] | rdi = *((rdi*8 + obj.funcPtrArray)); 0x004bd78d mov qword [rax + rbx*8], rdi | *((rax + rbx*8)) = rdi; 0x004bd791 movsx rdi, byte [rcx + rbx + 1] | rdi = *((rcx + rbx + 1)); 0x004bd797 mov rdi, qword [rdi*8 + 0x7171d0] | rdi = *((rdi*8 + obj.funcPtrArray)); 0x004bd79f mov qword [rax + rbx*8 + 8], rdi | *((rax + rbx*8 + 8)) = rdi; 0x004bd7a4 movsx rdi, byte [rcx + rbx + 2] | rdi = *((rcx + rbx + 2)); 0x004bd7aa mov rdi, qword [rdi*8 + 0x7171d0] | rdi = *((rdi*8 + obj.funcPtrArray)); 0x004bd7b2 mov qword [rax + rbx*8 + 0x10], rdi | *((rax + rbx*8 + 0x10)) = rdi; 0x004bd7b7 movsx rdi, byte [rcx + rbx + 3] | rdi = *((rcx + rbx + 3)); 0x004bd7bd mov rdi, qword [rdi*8 + 0x7171d0] | rdi = *((rdi*8 + obj.funcPtrArray)); 0x004bd7c5 mov qword [rax + rbx*8 + 0x18], rdi | *((rax + rbx*8 + 0x18)) = rdi; 0x004bd7ca movsx rdi, byte [rcx + rbx + 4] | rdi = *((rcx + rbx + 4)); 0x004bd7d0 mov rdi, qword [rdi*8 + 0x7171d0] | rdi = *((rdi*8 + obj.funcPtrArray)); 0x004bd7d8 mov qword [rax + rbx*8 + 0x20], rdi | *((rax + rbx*8 + 0x20)) = rdi; 0x004bd7dd movsx rdi, byte [rcx + rbx + 5] | rdi = *((rcx + rbx + 5)); 0x004bd7e3 mov rdi, qword [rdi*8 + 0x7171d0] | rdi = *((rdi*8 + obj.funcPtrArray)); 0x004bd7eb mov qword [rax + rbx*8 + 0x28], rdi | *((rax + rbx*8 + 0x28)) = rdi; 0x004bd7f0 movsx rdi, byte [rcx + rbx + 6] | rdi = *((rcx + rbx + 6)); 0x004bd7f6 mov rdi, qword [rdi*8 + 0x7171d0] | rdi = *((rdi*8 + obj.funcPtrArray)); 0x004bd7fe mov qword [rax + rbx*8 + 0x30], rdi | *((rax + rbx*8 + 0x30)) = rdi; 0x004bd803 movsx rdi, byte [rcx + rbx + 7] | rdi = *((rcx + rbx + 7)); 0x004bd809 mov rdi, qword [rdi*8 + 0x7171d0] | rdi = *((rdi*8 + obj.funcPtrArray)); 0x004bd811 mov qword [rax + rbx*8 + 0x38], rdi | *((rax + rbx*8 + 0x38)) = rdi; 0x004bd816 lea rdi, [rcx + rbx + 8] | rdi = rcx + rbx + 8; 0x004bd81b add rbx, 8 | rbx += 8; 0x004bd81f cmp rdi, rdx | 0x004bd822 jne 0x4bd780 | | } while (rdi != rdx); 0x004bd828 nop dword [rax + rax] | | label_31: 0x004bd830 cmp byte [rip + 0x25b159], 0 | | if (*(obj.veryVerbose) != 0) { 0x004bd837 je 0x4bd85b | 0x004bd839 mov edx, dword [rip + 0x25b165] | edx = numCopyCtorCalls; 0x004bd83f sub edx, r12d | edx -= r12d; 0x004bd842 mov ecx, dword [rip + 0x25b164] | ecx = numCharCtorCalls; 0x004bd848 sub ecx, dword [rsp + 0x20] | ecx -= *((rsp + 0x20)); 0x004bd84c mov edi, 0x4f5db4 | 0x004bd851 mov esi, r14d | esi = r14d; 0x004bd854 xor eax, eax | eax = 0; 0x004bd856 call 0x401680 | eax = printf ("LINE = %d, #copy ctors = %d, #char ctors = %d.\n"); | } | label_30: 0x004bd85b cmp r12d, dword [rip + 0x25b142] | | if (r12d == *(obj.numCopyCtorCalls)) { 0x004bd862 je 0x4bd3d0 | goto label_2; | } 0x004bd868 mov edi, 0x4f4e04 | 0x004bd86d mov edx, 0x4f5176 | edx = "NUM_COPIES == numCopyCtorCalls"; 0x004bd872 mov esi, 0x103f | esi = 0x103f; 0x004bd877 xor eax, eax | eax = 0; 0x004bd879 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004bd87e mov eax, dword [rip + 0x25b114] | eax = (anonymous namespace)::testStatus; 0x004bd884 cmp eax, 0x64 | | if (eax > 0x64) { 0x004bd887 ja 0x4bd3d0 | goto label_2; | } 0x004bd88d inc eax | eax++; 0x004bd88f mov dword [rip + 0x25b103], eax | *(obj._anonymous_namespace_::testStatus) = eax; 0x004bd895 jmp 0x4bd3d0 | goto label_2; | label_27: 0x004bd89a mov eax, 1 | eax = 1; 0x004bd89f mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x004bd8a4 mov rax, qword [rip + 0x293a0d] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bd8ab test rax, rax | | if (rax != 0) { 0x004bd8ae jne 0x4bd595 | goto label_3; | } 0x004bd8b4 call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004bd8b9 jmp 0x4bd595 | goto label_3; | label_21: 0x004bd91a add rsp, 0x58 | 0x004bd91e pop rbx | 0x004bd91f pop r12 | 0x004bd921 pop r13 | 0x004bd923 pop r14 | 0x004bd925 pop r15 | 0x004bd927 pop rbp | 0x004bd928 ret | return rax; | }