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

Reply via email to