On 02/01/16 23:28, Jeffrey Walton wrote: > On Sat, Jan 2, 2016 at 11:01 AM, Segher Boessenkool > <segher@xxxxxxxxxxxxxxxxxxx> wrote: >> On Sat, Jan 02, 2016 at 10:01:26AM -0500, Jeffrey Walton wrote: >>> 0x000000010048d87b <+174>: xor %eax,%eax >>> => 0x000000010048d87d <+176>: mov (%r11,%rax,1),%dl >>> >>> (gdb) info registers >>> rax 0x9b7a 0x9b7a >> >> Why is AX not 0 here? That seems wrong. >> > It looks like a small issue with GCC 5.2 and -Os. The function that's > being called has the signature > (http://www.cryptopp.com/docs/ref/misc_8cpp_source.html#l00060): > > xorbuf(byte* out, const byte* in, const byte* mask, size_t len); > > When I examine frame 0 at the crash site, it looks like 'in' and 'len' > are the same value (but 'len' is only 120 bytes in the frame above). That shouldn't matter. In heavily-optimized code GDB can lose track when there is partial debug information. AX is not zero there because of a branch from somewhere else. We have only a tiny little bit of information. Andrew.