paulfloyd / freebsd_valgrind

Git repo used to Upstream the FreeBSD Port of Valgrind
GNU General Public License v2.0
15 stars 4 forks source link

memcheck/tests/memalign_test missing valloc in callstack [clang] #158

Closed paulfloyd closed 2 years ago

paulfloyd commented 3 years ago

One line containing valloc is missing in the callstack.

Works OK with clang11 on Fedora 33.

Is this tail call optimization? Need to look at asm.

  201a71:       8b 45 9c                mov    -0x64(%rbp),%eax
  201a74:       83 c0 01                add    $0x1,%eax
  201a77:       69 c0 67 2b 00 00       imul   $0x2b67,%eax,%eax
  201a7d:       48 63 f8                movslq %eax,%rdi
  201a80:       e8 6b 01 00 00          call   201bf0 <valloc@plt>

and in libc

   b465c:       e8 8f e0 11 00          call   1d26f0 <getpagesize@plt>
   b4661:       48 63 f0                movslq %eax,%rsi
   b4664:       48 8d 7d e0             lea    -0x20(%rbp),%rdi
   b4668:       48 89 da                mov    %rbx,%rdx
   b466b:       e8 50 e4 11 00          call   1d2ac0 <posix_memalign@plt>

That looks OK and the TC passes on 13.0 amd64 without the expected that I added. Need to check on 13.1.

paulfloyd commented 2 years ago

Seems to pass now. Not sure what changed.