Tested on x86_64-pc-linux-gnu.
Pushed to trunk as r14-9075-geb37ea529745c3.

gcc/testsuite/ChangeLog:
        PR analyzer/110520
        * c-c++-common/analyzer/null-deref-pr110520.c: New test.

Signed-off-by: David Malcolm <dmalc...@redhat.com>
---
 gcc/testsuite/c-c++-common/analyzer/null-deref-pr110520.c | 8 ++++++++
 1 file changed, 8 insertions(+)
 create mode 100644 gcc/testsuite/c-c++-common/analyzer/null-deref-pr110520.c

diff --git a/gcc/testsuite/c-c++-common/analyzer/null-deref-pr110520.c 
b/gcc/testsuite/c-c++-common/analyzer/null-deref-pr110520.c
new file mode 100644
index 00000000000..b57027689ee
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/analyzer/null-deref-pr110520.c
@@ -0,0 +1,8 @@
+#include "analyzer-decls.h"
+
+int main(void) {
+    char buf[] = "0";
+    int *ptr = (int *)(__builtin_strlen(buf) - 1);
+    __analyzer_eval((__builtin_strlen(buf)) == 1); /* { dg-warning "TRUE" } */
+    *ptr = 10086; /* { dg-warning "dereference of NULL 'ptr'" } */
+}
-- 
2.26.3

Reply via email to