Fixes spurious warnings with mingw-w64. Attached patches OK for master branch?
From ca70335ceab761f3c3a365d0667ad824a7bf6822 Mon Sep 17 00:00:00 2001 From: Jonathan Yong <[email protected]> Date: Sun, 8 Feb 2026 03:30:54 +0000 Subject: [PATCH 2/2] gcc.target/i386/pr63542-2.c: Fix llp64 casts
Fix compile warnings with mingw-w64. Signed-off-by: Jonathan Yong <[email protected]> gcc/testsuite/ChangeLog: * gcc.target/i386/pr63542-2.c: Change long unsigned casts to __UINTPTR_TYPE__. --- gcc/testsuite/gcc.target/i386/pr63542-2.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gcc/testsuite/gcc.target/i386/pr63542-2.c b/gcc/testsuite/gcc.target/i386/pr63542-2.c index e9e9d844364..78e33d59479 100644 --- a/gcc/testsuite/gcc.target/i386/pr63542-2.c +++ b/gcc/testsuite/gcc.target/i386/pr63542-2.c @@ -3,7 +3,7 @@ /* { dg-options "-O2 -g -dA" } */ /* { dg-additional-options "-fpic" { target fpic } } */ -struct B { unsigned long c; unsigned char *d; }; +struct B { __UINTPTR_TYPE__ c; unsigned char *d; }; extern struct A { struct B *e[0x400]; } *f[128]; extern void (*bar) (char *p, char *q); @@ -12,19 +12,19 @@ foo (char *p, char *q) { struct B *g; char *b, *l; - unsigned long s; + __UINTPTR_TYPE__ s; - g = f[((unsigned long) p) >> 22]->e[(((unsigned long) p) >> 12) & 0x3ff]; + g = f[((__UINTPTR_TYPE__) p) >> 22]->e[(((__UINTPTR_TYPE__) p) >> 12) & 0x3ff]; s = g->c << 2; - int r = ((unsigned long) p) & 0xfff; + int r = ((__UINTPTR_TYPE__) p) & 0xfff; int m = g->d[r]; if (m > 0xfd) { m = (r >> 2) % (s >> 2); - if ((((unsigned long) p) & ~(unsigned long) 0xfff) != (((unsigned long) q) & ~(unsigned long) 0xfff)) + if ((((__UINTPTR_TYPE__) p) & ~(__UINTPTR_TYPE__) 0xfff) != (((__UINTPTR_TYPE__) q) & ~(__UINTPTR_TYPE__) 0xfff)) goto fail; } - b = (char *) ((unsigned long) p & ~(unsigned long) 3); + b = (char *) ((__UINTPTR_TYPE__) p & ~(__UINTPTR_TYPE__) 3); b -= m << 2; l = b + s; -- 2.53.0
From c84044a97923c80e1e5337690023ee4d4139af13 Mon Sep 17 00:00:00 2001 From: Jonathan Yong <[email protected]> Date: Sun, 8 Feb 2026 03:25:22 +0000 Subject: [PATCH 1/2] gcc.dg/analyzer/null-deref-pr105755.c: fix llp64 Fix compile warnings with mingw-w64. Signed-off-by: Jonathan Yong <[email protected]> gcc/testsuite/ChangeLog: * gcc.dg/analyzer/null-deref-pr105755.c: (ptrdiff_t): Change from long int to __PTRDIFF_TYPE__. (EMACS_INT): Change from long int to __UINTPTR_TYPE__. (intmax_t): change from long int to __INTMAX_TYPE__. --- gcc/testsuite/gcc.dg/analyzer/null-deref-pr105755.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gcc/testsuite/gcc.dg/analyzer/null-deref-pr105755.c b/gcc/testsuite/gcc.dg/analyzer/null-deref-pr105755.c index 5375b4dd6f6..f47e5869796 100644 --- a/gcc/testsuite/gcc.dg/analyzer/null-deref-pr105755.c +++ b/gcc/testsuite/gcc.dg/analyzer/null-deref-pr105755.c @@ -1,9 +1,9 @@ /* { dg-require-effective-target int32plus } */ /* { dg-additional-options "-Wno-analyzer-too-complex -Wno-analyzer-symbol-too-complex -O2" } */ -typedef long int ptrdiff_t; -typedef long int EMACS_INT; -typedef long int intmax_t; +typedef __PTRDIFF_TYPE__ ptrdiff_t; +typedef __UINTPTR_TYPE__ EMACS_INT; +typedef __INTMAX_TYPE__ intmax_t; enum Lisp_Type { -- 2.53.0
