diff options
author | David Malcolm <dmalcolm@redhat.com> | 2024-03-19 09:06:45 -0400 |
---|---|---|
committer | David Malcolm <dmalcolm@redhat.com> | 2024-03-19 09:06:45 -0400 |
commit | c7a774edbf802d79b95871ede5b80f6e9adf8e88 (patch) | |
tree | bf7c9149aee2fe787252defc5afcd9b0e1ae2fda /gcc/system.h | |
parent | 4adb1a5839e7a3310a127c1776f1f95d7edaa6ff (diff) | |
download | gcc-c7a774edbf802d79b95871ede5b80f6e9adf8e88.zip gcc-c7a774edbf802d79b95871ede5b80f6e9adf8e88.tar.gz gcc-c7a774edbf802d79b95871ede5b80f6e9adf8e88.tar.bz2 |
analyzer: fixes to __atomic_{exchange,load,store} [PR114286]
In r14-1497-gef768035ae8090 I added some support to the analyzer for
__atomic_ builtins (enough to fix false positives I was seeing in
my integration tests).
Unfortunately I messed up the implementation of
__atomic_{exchange,load,store}, leading to ICEs seen in
PR analyzer/114286.
Fixed thusly, fixing the ICEs. Given that we're in stage 4, the patch
doesn't add support for any of the various __atomic_compare_exchange
builtins, so that these continue to fall back to the analyzer's
"anything could happen" handling of unknown functions.
Signed-off-by: David Malcolm <dmalcolm@redhat.com>
gcc/analyzer/ChangeLog:
PR analyzer/114286
* kf.cc (class kf_atomic_exchange): Reimplement based on signature
seen in gimple, rather than user-facing signature.
(class kf_atomic_load): Likewise.
(class kf_atomic_store): New.
(register_atomic_builtins): Register kf_atomic_store.
gcc/testsuite/ChangeLog:
PR analyzer/114286
* c-c++-common/analyzer/atomic-builtins-pr114286.c: New test.
Signed-off-by: David Malcolm <dmalcolm@redhat.com>
Diffstat (limited to 'gcc/system.h')
0 files changed, 0 insertions, 0 deletions