From: Jose E. Marchesi Date: Thu, 24 Aug 2023 15:10:52 +0000 (+0200) Subject: Fix tests for PR 106537. X-Git-Tag: basepoints/gcc-15~6669 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=721f7e2c4e5eed645593258624dd91e6c39f3bd2;p=thirdparty%2Fgcc.git Fix tests for PR 106537. This patch fixes the tests for PR 106537 (support for -W[no]-compare-distinct-pointer-types) which were expecting the warning when checking for equality/inequality of void pointers with non-function pointers. gcc/testsuite/ChangeLog: PR c/106537 * gcc.c-torture/compile/pr106537-1.c: Comparing void pointers to non-function pointers is legit. * gcc.c-torture/compile/pr106537-2.c: Likewise. --- diff --git a/gcc/testsuite/gcc.c-torture/compile/pr106537-1.c b/gcc/testsuite/gcc.c-torture/compile/pr106537-1.c index 3f3b06577d52..b67b6090dc38 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr106537-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr106537-1.c @@ -25,9 +25,11 @@ int xdp_context (struct xdp_md *xdp) return 3; if (metadata + 1 <= data) /* { dg-warning "comparison of distinct pointer types" } */ return 4; - if (metadata + 1 == data) /* { dg-warning "comparison of distinct pointer types" } */ + /* Note that it is ok to check for equality or inequality betewen void + pointers and any other non-function pointers. */ + if ((int*) (metadata + 1) == (long*) data) /* { dg-warning "comparison of distinct pointer types" } */ return 5; - if (metadata + 1 != data) /* { dg-warning "comparison of distinct pointer types" } */ + if ((int*) metadata + 1 != (long*) data) /* { dg-warning "comparison of distinct pointer types" } */ return 5; return 1; diff --git a/gcc/testsuite/gcc.c-torture/compile/pr106537-2.c b/gcc/testsuite/gcc.c-torture/compile/pr106537-2.c index 6876adf3aab1..d4223c25c949 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr106537-2.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr106537-2.c @@ -23,9 +23,11 @@ int xdp_context (struct xdp_md *xdp) return 3; if (metadata + 1 <= data) /* { dg-warning "comparison of distinct pointer types" } */ return 4; - if (metadata + 1 == data) /* { dg-warning "comparison of distinct pointer types" } */ + /* Note that it is ok to check for equality or inequality betewen void + pointers and any other non-function pointers. */ + if ((int*) (metadata + 1) == (long*) data) /* { dg-warning "comparison of distinct pointer types" } */ return 5; - if (metadata + 1 != data) /* { dg-warning "comparison of distinct pointer types" } */ + if ((int*) metadata + 1 != (long*) data) /* { dg-warning "comparison of distinct pointer types" } */ return 5; return 1;