]> 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>
Sat, 30 Mar 2024 03:53:49 +0000 (04:53 +0100)
commit05de873353ab9e94cda2b9e9561a82ca4e061c3f
tree9ecc5c4faa24cea9c42180ca8924ea5ab2805fa2
parent01397f789866198ad4fae3893d8f6b0a1d96cd96
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.

(cherry picked from commit ddd4a3ca87410886b039cc225907b4f6e650082e)
gcc/testsuite/gcc.dg/ubsan/pr111736.c [new file with mode: 0644]
gcc/ubsan.cc