Ignored vs Assumed Semantics in BDE

BloombergLP::balcl::(anonymous namespace)::u::ScalarConstraint<bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >, bsl::function<bool (bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&)>, 6>::parse(BloombergLP::balcl::OptionValue*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const&) const - Assumed

000000000046cd30 <BloombergLP::balcl::(anonymous namespace)::u::ScalarConstraint<bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >, bsl::function<bool (bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&)>, 6>::parse(BloombergLP::balcl::OptionValue*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const&) const>:
M0000000000000000:	pushq	%rbp	;  1 bytes
M0000000000000001:	pushq	%r15	;  2 bytes
M0000000000000003:	pushq	%r14	;  2 bytes
M0000000000000005:	pushq	%r13	;  2 bytes
M0000000000000007:	pushq	%r12	;  2 bytes
M0000000000000009:	pushq	%rbx	;  1 bytes
M000000000000000a:	subq	$56, %rsp	;  4 bytes
M000000000000000e:	movq	%rcx, %r13	;  3 bytes
M0000000000000011:	movq	%rdx, %r14	;  3 bytes
M0000000000000014:	movq	%rsi, %rbx	;  3 bytes
M0000000000000017:	movq	%rdi, %r15	;  3 bytes
M000000000000001a:	movq	%rsi, %rdi	;  3 bytes
M000000000000001d:	callq	0x465e70 <BloombergLP::balcl::OptionValue::type() const>	;  5 bytes
M0000000000000022:	movq	$0, 8(%rsp)	;  9 bytes
M000000000000002b:	movaps	226158(%rip), %xmm0  # 4a40d0 <__dso_handle+0x8>	;  7 bytes
M0000000000000032:	movups	%xmm0, 32(%rsp)	;  5 bytes
M0000000000000037:	movq	2719418(%rip), %rax  # 704c28 <BloombergLP::bslma::Default::s_defaultAllocator>	;  7 bytes
M000000000000003e:	testq	%rax, %rax	;  3 bytes
M0000000000000041:	je	0x46cd7f <BloombergLP::balcl::(anonymous namespace)::u::ScalarConstraint<bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >, bsl::function<bool (bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&)>, 6>::parse(BloombergLP::balcl::OptionValue*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const&) const+0x4f>	;  2 bytes
M0000000000000043:	leaq	8(%rsp), %rcx	;  5 bytes
M0000000000000048:	movq	%rax, 48(%rsp)	;  5 bytes
M000000000000004d:	jmp	0x46cd9d <BloombergLP::balcl::(anonymous namespace)::u::ScalarConstraint<bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >, bsl::function<bool (bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&)>, 6>::parse(BloombergLP::balcl::OptionValue*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const&) const+0x6d>	;  2 bytes
M000000000000004f:	callq	0x47cad0 <BloombergLP::bslma::Default::determineAndReturnDefaultAllocator()>	;  5 bytes
M0000000000000054:	cmpq	$23, 40(%rsp)	;  6 bytes
M000000000000005a:	movq	%rax, 48(%rsp)	;  5 bytes
M000000000000005f:	je	0x46cd98 <BloombergLP::balcl::(anonymous namespace)::u::ScalarConstraint<bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >, bsl::function<bool (bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&)>, 6>::parse(BloombergLP::balcl::OptionValue*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const&) const+0x68>	;  2 bytes
M0000000000000061:	movq	8(%rsp), %rcx	;  5 bytes
M0000000000000066:	jmp	0x46cd9d <BloombergLP::balcl::(anonymous namespace)::u::ScalarConstraint<bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >, bsl::function<bool (bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&)>, 6>::parse(BloombergLP::balcl::OptionValue*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const&) const+0x6d>	;  2 bytes
M0000000000000068:	leaq	8(%rsp), %rcx	;  5 bytes
M000000000000006d:	movb	$0, (%rcx)	;  3 bytes
M0000000000000070:	cmpq	$23, 32(%r13)	;  5 bytes
M0000000000000075:	je	0x46cdab <BloombergLP::balcl::(anonymous namespace)::u::ScalarConstraint<bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >, bsl::function<bool (bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&)>, 6>::parse(BloombergLP::balcl::OptionValue*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const&) const+0x7b>	;  2 bytes
M0000000000000077:	movq	(%r13), %r13	;  4 bytes
M000000000000007b:	movq	%r13, %rdi	;  3 bytes
M000000000000007e:	callq	0x4046c0 <strlen@plt>	;  5 bytes
M0000000000000083:	movq	32(%rsp), %rbp	;  5 bytes
M0000000000000088:	movq	$0, 32(%rsp)	;  9 bytes
M0000000000000091:	leaq	8(%rsp), %r12	;  5 bytes
M0000000000000096:	movl	$4908446, %ecx	;  5 bytes
M000000000000009b:	movq	%r12, %rdi	;  3 bytes
M000000000000009e:	movq	%r13, %rsi	;  3 bytes
M00000000000000a1:	movq	%rax, %rdx	;  3 bytes
M00000000000000a4:	callq	0x481b20 <bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >::privateAppend(char const*, unsigned long, char const*)>	;  5 bytes
M00000000000000a9:	movq	56(%rbx), %r13	;  4 bytes
M00000000000000ad:	cmpb	$0, 48(%rbx)	;  4 bytes
M00000000000000b1:	je	0x46ce03 <BloombergLP::balcl::(anonymous namespace)::u::ScalarConstraint<bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >, bsl::function<bool (bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&)>, 6>::parse(BloombergLP::balcl::OptionValue*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const&) const+0xd3>	;  2 bytes
M00000000000000b3:	movb	$0, 48(%rbx)	;  4 bytes
M00000000000000b7:	cmpq	$23, 32(%rbx)	;  5 bytes
M00000000000000bc:	je	0x46cdfb <BloombergLP::balcl::(anonymous namespace)::u::ScalarConstraint<bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >, bsl::function<bool (bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&)>, 6>::parse(BloombergLP::balcl::OptionValue*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const&) const+0xcb>	;  2 bytes
M00000000000000be:	movq	(%rbx), %rsi	;  3 bytes
M00000000000000c1:	movq	40(%rbx), %rdi	;  4 bytes
M00000000000000c5:	movq	(%rdi), %rax	;  3 bytes
M00000000000000c8:	callq	*24(%rax)	;  3 bytes
M00000000000000cb:	movq	$-1, 24(%rbx)	;  8 bytes
M00000000000000d3:	testq	%r13, %r13	;  3 bytes
M00000000000000d6:	jne	0x46ce1c <BloombergLP::balcl::(anonymous namespace)::u::ScalarConstraint<bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >, bsl::function<bool (bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&)>, 6>::parse(BloombergLP::balcl::OptionValue*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const&) const+0xec>	;  2 bytes
M00000000000000d8:	movq	2719257(%rip), %r13  # 704c28 <BloombergLP::bslma::Default::s_defaultAllocator>	;  7 bytes
M00000000000000df:	testq	%r13, %r13	;  3 bytes
M00000000000000e2:	jne	0x46ce1c <BloombergLP::balcl::(anonymous namespace)::u::ScalarConstraint<bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >, bsl::function<bool (bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&)>, 6>::parse(BloombergLP::balcl::OptionValue*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const&) const+0xec>	;  2 bytes
M00000000000000e4:	callq	0x47cad0 <BloombergLP::bslma::Default::determineAndReturnDefaultAllocator()>	;  5 bytes
M00000000000000e9:	movq	%rax, %r13	;  3 bytes
M00000000000000ec:	movq	40(%rsp), %rax	;  5 bytes
M00000000000000f1:	movq	%rax, 32(%rbx)	;  4 bytes
M00000000000000f5:	movups	8(%rsp), %xmm0	;  5 bytes
M00000000000000fa:	movups	24(%rsp), %xmm1	;  5 bytes
M00000000000000ff:	movups	%xmm1, 16(%rbx)	;  4 bytes
M0000000000000103:	movups	%xmm0, (%rbx)	;  3 bytes
M0000000000000106:	movq	%r13, 40(%rbx)	;  4 bytes
M000000000000010a:	cmpq	$23, %rax	;  4 bytes
M000000000000010e:	je	0x46cea2 <BloombergLP::balcl::(anonymous namespace)::u::ScalarConstraint<bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >, bsl::function<bool (bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&)>, 6>::parse(BloombergLP::balcl::OptionValue*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const&) const+0x172>	;  2 bytes
M0000000000000110:	movq	32(%rsp), %rax	;  5 bytes
M0000000000000115:	cmpq	$23, %rax	;  4 bytes
M0000000000000119:	movl	$23, %esi	;  5 bytes
M000000000000011e:	cmovaq	%rax, %rsi	;  4 bytes
M0000000000000122:	movq	$0, (%rbx)	;  7 bytes
M0000000000000129:	movq	%rax, 24(%rbx)	;  4 bytes
M000000000000012d:	movq	%rsi, 32(%rbx)	;  4 bytes
M0000000000000131:	cmpq	$24, %rax	;  4 bytes
M0000000000000135:	jb	0x46ce7e <BloombergLP::balcl::(anonymous namespace)::u::ScalarConstraint<bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >, bsl::function<bool (bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&)>, 6>::parse(BloombergLP::balcl::OptionValue*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const&) const+0x14e>	;  2 bytes
M0000000000000137:	incq	%rsi	;  3 bytes
M000000000000013a:	movq	(%r13), %rax	;  4 bytes
M000000000000013e:	movq	%r13, %rdi	;  3 bytes
M0000000000000141:	callq	*16(%rax)	;  3 bytes
M0000000000000144:	movq	%rax, (%rbx)	;  3 bytes
M0000000000000147:	cmpq	$23, 32(%rbx)	;  5 bytes
M000000000000014c:	jne	0x46ce81 <BloombergLP::balcl::(anonymous namespace)::u::ScalarConstraint<bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >, bsl::function<bool (bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&)>, 6>::parse(BloombergLP::balcl::OptionValue*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const&) const+0x151>	;  2 bytes
M000000000000014e:	movq	%rbx, %rax	;  3 bytes
M0000000000000151:	movq	24(%rbx), %rdx	;  4 bytes
M0000000000000155:	incq	%rdx	;  3 bytes
M0000000000000158:	je	0x46cea2 <BloombergLP::balcl::(anonymous namespace)::u::ScalarConstraint<bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >, bsl::function<bool (bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&)>, 6>::parse(BloombergLP::balcl::OptionValue*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const&) const+0x172>	;  2 bytes
M000000000000015a:	cmpq	$23, 40(%rsp)	;  6 bytes
M0000000000000160:	je	0x46ce97 <BloombergLP::balcl::(anonymous namespace)::u::ScalarConstraint<bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >, bsl::function<bool (bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&)>, 6>::parse(BloombergLP::balcl::OptionValue*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const&) const+0x167>	;  2 bytes
M0000000000000162:	movq	8(%rsp), %r12	;  5 bytes
M0000000000000167:	movq	%rax, %rdi	;  3 bytes
M000000000000016a:	movq	%r12, %rsi	;  3 bytes
M000000000000016d:	callq	0x404c70 <memcpy@plt>	;  5 bytes
M0000000000000172:	movb	$1, 48(%rbx)	;  4 bytes
M0000000000000176:	movq	(%r15), %rax	;  3 bytes
M0000000000000179:	movq	%r15, %rdi	;  3 bytes
M000000000000017c:	movq	%rbx, %rsi	;  3 bytes
M000000000000017f:	movq	%r14, %rdx	;  3 bytes
M0000000000000182:	callq	*40(%rax)	;  3 bytes
M0000000000000185:	movl	%eax, %ebx	;  2 bytes
M0000000000000187:	cmpq	$23, 40(%rsp)	;  6 bytes
M000000000000018d:	je	0x46cecf <BloombergLP::balcl::(anonymous namespace)::u::ScalarConstraint<bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >, bsl::function<bool (bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&)>, 6>::parse(BloombergLP::balcl::OptionValue*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const&) const+0x19f>	;  2 bytes
M000000000000018f:	movq	8(%rsp), %rsi	;  5 bytes
M0000000000000194:	movq	48(%rsp), %rdi	;  5 bytes
M0000000000000199:	movq	(%rdi), %rax	;  3 bytes
M000000000000019c:	callq	*24(%rax)	;  3 bytes
M000000000000019f:	movl	%ebx, %eax	;  2 bytes
M00000000000001a1:	addq	$56, %rsp	;  4 bytes
M00000000000001a5:	popq	%rbx	;  1 bytes
M00000000000001a6:	popq	%r12	;  2 bytes
M00000000000001a8:	popq	%r13	;  2 bytes
M00000000000001aa:	popq	%r14	;  2 bytes
M00000000000001ac:	popq	%r15	;  2 bytes
M00000000000001ae:	popq	%rbp	;  1 bytes
M00000000000001af:	retq		;  1 bytes
M00000000000001b0:	movq	%rax, %rdi	;  3 bytes
M00000000000001b3:	callq	0x451530 <__clang_call_terminate>	;  5 bytes
M00000000000001b8:	movq	%rax, %rdi	;  3 bytes
M00000000000001bb:	callq	0x451530 <__clang_call_terminate>	;  5 bytes
M00000000000001c0:	movq	%rax, %rdi	;  3 bytes
M00000000000001c3:	callq	0x451530 <__clang_call_terminate>	;  5 bytes
M00000000000001c8:	movq	%rax, %rbx	;  3 bytes
M00000000000001cb:	movq	%rbp, 32(%rsp)	;  5 bytes
M00000000000001d0:	jmp	0x46cf05 <BloombergLP::balcl::(anonymous namespace)::u::ScalarConstraint<bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >, bsl::function<bool (bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&)>, 6>::parse(BloombergLP::balcl::OptionValue*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const&) const+0x1d5>	;  2 bytes
M00000000000001d2:	movq	%rax, %rbx	;  3 bytes
M00000000000001d5:	cmpq	$23, 40(%rsp)	;  6 bytes
M00000000000001db:	je	0x46cf1d <BloombergLP::balcl::(anonymous namespace)::u::ScalarConstraint<bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> >, bsl::function<bool (bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&)>, 6>::parse(BloombergLP::balcl::OptionValue*, std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bsl::basic_string<char, std::__1::char_traits<char>, bsl::allocator<char> > const&) const+0x1ed>	;  2 bytes
M00000000000001dd:	movq	8(%rsp), %rsi	;  5 bytes
M00000000000001e2:	movq	48(%rsp), %rdi	;  5 bytes
M00000000000001e7:	movq	(%rdi), %rax	;  3 bytes
M00000000000001ea:	callq	*24(%rax)	;  3 bytes
M00000000000001ed:	movq	%rbx, %rdi	;  3 bytes
M00000000000001f0:	callq	0x404c00 <_Unwind_Resume@plt>	;  5 bytes
M00000000000001f5:	movq	%rax, %rdi	;  3 bytes
M00000000000001f8:	callq	0x451530 <__clang_call_terminate>	;  5 bytes
M00000000000001fd:	nopl	(%rax)	;  3 bytes