summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2022-07-27 17:38:54 -0400
committerDavid Malcolm <dmalcolm@redhat.com>2022-07-27 17:54:26 -0400
commit4eac9fa087f4efd0748c9ff51bec1155a9b6b41e (patch)
treebd09db57e2511fad74928c9e2e944b2eb78fe91f
parent6fd39b060420125c17c60e837836d30993b7ed84 (diff)
analyzer: add more uninit test coverage
(cherry picked from r13-1116-g44681d45473883) gcc/testsuite/ChangeLog: * gcc.dg/analyzer/uninit-1.c: Add test coverage of attempts to jump through an uninitialized function pointer, and of attempts to pass an uninitialized value to a function call. Signed-off-by: David Malcolm <dmalcolm@redhat.com>
-rw-r--r--gcc/testsuite/gcc.dg/analyzer/uninit-1.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/analyzer/uninit-1.c b/gcc/testsuite/gcc.dg/analyzer/uninit-1.c
index 9a6576e1b0a..3d1021658bc 100644
--- a/gcc/testsuite/gcc.dg/analyzer/uninit-1.c
+++ b/gcc/testsuite/gcc.dg/analyzer/uninit-1.c
@@ -127,3 +127,22 @@ size_t test_builtin_strlen (void)
const char *ptr; /* { dg-message "region created on stack here" } */
return __builtin_strlen (ptr); /* { dg-warning "use of uninitialized value 'ptr'" } */
}
+
+void test_calling_uninit_fn_ptr_1 (void)
+{
+ void (*fn_ptr) (void); /* { dg-message "region created on stack here" } */
+ fn_ptr (); /* { dg-warning "use of uninitialized value 'fn_ptr'" } */
+}
+
+int test_calling_uninit_fn_ptr_2 (void)
+{
+ int (*fn_ptr) (void); /* { dg-message "region created on stack here" } */
+ return fn_ptr (); /* { dg-warning "use of uninitialized value 'fn_ptr'" } */
+}
+
+extern void called_by_uninit_arg (int);
+void test_passing_uninit_arg (void)
+{
+ int i; /* { dg-message "region created on stack here" } */
+ called_by_uninit_arg (i); /* { dg-warning "use of uninitialized value 'i'" } */
+}