This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug sanitizer/79341] Many Asan tests fail on s390


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

--- Comment #59 from Ulrich Weigand <uweigand at gcc dot gnu.org> ---
(In reply to Dominik Vogt from comment #57)
> libsanitizer miscalculates the Pcs in the backtrace:
> 
>     #0 0x1000839 in NullDeref
>     #1 0x10006c1 in main
>     #2 0x3fff6e23069 in __libc_start_main
>     #3 0x100073d
> 
> These are all odd addresses, pointing to the last byte of the previous
> instruction.  In case of null-deref-1.c that byte belongs to some
> instrumentation code that is associated with line 11.

Normally you should decrement the return address by one for normal frames (in
order to identify the call instruction), but you should not decrement the
return address for signal frames (since the address already identifies the
faulting instruction).

That's why there's usually a bit to distinguish signal frames from normal
frames during unwinding.  Maybe this somehow doesn't work correctly with the
libsanitizer unwinding?

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]