http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58543
--- Comment #5 from Yury Gribov <y.gribov at samsung dot com> --- > I guess you mean *un*poison here. Right you are! > My understanding is that in the loop above, we are setting the memory > pointed to by frame_shadow_base + { 0, 4, 8, 12, 16} to zero. > > And in the code below, we are preparing to set the memory pointed to by > frame_shadow_base + {24, 28} to zero. Exactly. > add r3, r4, #24 ; r3 gets invalid value here > Why is r3 invalid? It's being set to #24, > so that the strb r2, [r3] below writes a zero byte to [r4,#24]. Not really - it's set to #40 because r4 was changed to #16 inside the loop > Would it be possible that you file it > so that I can understand better what is going on? Sure - simply compile the attached repro with `-O0 -fsanitize-address'. But note that you need to use ARM target because x86 does not trigger this bug (most probably because it uses different code path in asan_clear_shadow). -Y