]> git.ipfire.org Git - thirdparty/gcc.git/commit
ubsan: Don't -fsanitize=null instrument __seg_fs/gs pointers [PR111736]
authorJakub Jelinek <jakub@redhat.com>
Fri, 22 Mar 2024 08:23:44 +0000 (09:23 +0100)
committerJakub Jelinek <jakub@redhat.com>
Fri, 22 Mar 2024 08:24:42 +0000 (09:24 +0100)
commitddd4a3ca87410886b039cc225907b4f6e650082e
treea6483f4e458b9152555bba16e4e0ce65949f9ecf
parent982250b230967776f0da708a1572b78a38561e08
ubsan: Don't -fsanitize=null instrument __seg_fs/gs pointers [PR111736]

On x86 and avr some address spaces allow 0 pointers (on avr actually
even generic as, but libsanitizer isn't ported to it and
I'm not convinced we should completely kill -fsanitize=null in that
case).
The following patch makes sure those aren't diagnosed for -fsanitize=null,
though they are still sanitized for -fsanitize=alignment.

2024-03-22  Jakub Jelinek  <jakub@redhat.com>

PR sanitizer/111736
* ubsan.cc (ubsan_expand_null_ifn, instrument_mem_ref): Avoid
SANITIZE_NULL instrumentation for non-generic address spaces
for which targetm.addr_space.zero_address_valid (as) is true.

* gcc.dg/ubsan/pr111736.c: New test.
gcc/testsuite/gcc.dg/ubsan/pr111736.c [new file with mode: 0644]
gcc/ubsan.cc