https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111165

Arsen Arsenović <arsen at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |arsen at gcc dot gnu.org

--- Comment #24 from Arsen Arsenović <arsen at gcc dot gnu.org> ---
(In reply to Thorsten Glaser from comment #6)
> dietlibc’s strlen is a horrid SSE nightmare that doesn’t call (f)emms, but
> it has a switch global variable __valgrind, if setting that to 1 it uses a
> very traditional loop instead, and the registers before/after strlen also
> match (only rax has changed), so I’m at a loss.
> 
> Changing the line to…
> 
> sp += strlen(sp) + 1;
> 
> … doesn’t make the problem go away, for some reason. Replacing it with…
> 
> while (*sp++) ;
> 
> … however *does* make it go away.
> 
> I’ll paste a screenlog of single-stepping through the valgrind version of
> the code below
> (http://www.mirbsd.org/cvs.cgi/contrib/hosted/tg/.gdbinit?rev=HEAD has the
> helpful t macro):

does setting __valgrind=1 make the issue disappear?  is the strlen result
correct?

Reply via email to