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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
                 CC|                            |jakub at gcc dot gnu.org,
                   |                            |mark at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Indeed, the generated code looks correct, on the other side for valgrind it
will be terribly hard to differentiate this case from when the source is
  unsigned long long *p = (unsigned long long *) &part[0];
  if (*p == 0x37363534333231)
    __builtin_abort ();
where it wants to complain loudly.  The only way I see is some on the side
data, debuginfo (if it contains information that the cmpq %rax, (%rsp) comes
from inlined strcmp), or whatever other way we can tell valgrind about this.
For this inlined strcmp case it would want to look at the bytes from memory
until first '\0' inclusive and ignore any differences afterwards.

Reply via email to