Attached patch OK for master branch?
gcc/testsuite/ChangeLog:
* g++.dg/expr/cast11.C: cast to intptr_t instead of long.
* g++.dg/opt/pr55717.C: ditto.
* g++.dg/warn/Wunused-value-1.C: ditto.
From 9eb396e7629c3dc4598f49d5d5eb71ad907df7ce Mon Sep 17 00:00:00 2001
From: Jonathan Yong <[email protected]>
Date: Wed, 11 Feb 2026 05:49:57 +0000
Subject: [PATCH] Make some C++ tests account for llp64 targets
Fix spurious warnings with mingw-w64.
gcc/testsuite/ChangeLog:
* g++.dg/expr/cast11.C: cast to intptr_t instead of long.
* g++.dg/opt/pr55717.C: ditto.
* g++.dg/warn/Wunused-value-1.C: ditto.
Signed-off-by: Jonathan Yong <[email protected]>
---
gcc/testsuite/g++.dg/expr/cast11.C | 4 +++-
gcc/testsuite/g++.dg/opt/pr55717.C | 3 ++-
gcc/testsuite/g++.dg/warn/Wunused-value-1.C | 10 ++++++----
3 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/gcc/testsuite/g++.dg/expr/cast11.C b/gcc/testsuite/g++.dg/expr/cast11.C
index baafebb3c73..77d6e5facc4 100644
--- a/gcc/testsuite/g++.dg/expr/cast11.C
+++ b/gcc/testsuite/g++.dg/expr/cast11.C
@@ -10,6 +10,8 @@ template<typename T> void g(T const&&) { }
struct B { int i; const char c; } b = {};
+typedef __INTPTR_TYPE__ intptr_t;
+
void f1()
{
int i = 0;
@@ -19,7 +21,7 @@ void f1()
f((long* const)&i); // { dg-warning "5:type qualifiers ignored" }
f(static_cast<long const>(i)); // { dg-warning "5:type qualifiers ignored" }
- f(reinterpret_cast<long const>(&i)); // { dg-warning "5:type qualifiers ignored" }
+ f(reinterpret_cast<intptr_t const>(&i)); // { dg-warning "5:type qualifiers ignored" }
f(static_cast<int* const>(&i)); // { dg-warning "5:type qualifiers ignored" }
f(const_cast<int* const>(&i)); // { dg-warning "5:type qualifiers ignored" }
diff --git a/gcc/testsuite/g++.dg/opt/pr55717.C b/gcc/testsuite/g++.dg/opt/pr55717.C
index c03badd258f..688b0ae2fb6 100644
--- a/gcc/testsuite/g++.dg/opt/pr55717.C
+++ b/gcc/testsuite/g++.dg/opt/pr55717.C
@@ -3,6 +3,7 @@
// { dg-options "-O -g" }
typedef unsigned uint32_t __attribute__((mode (__SI__)));
+typedef __INTPTR_TYPE__ intptr_t;
struct DebugOnly {};
template <class T>
@@ -95,7 +96,7 @@ struct AllocationSiteKey
uint32_t offset : 24;
int kind;
typedef AllocationSiteKey Lookup;
- static unsigned hash (AllocationSiteKey key) { return (long (key.script->code + key.offset)) ^ key.kind; }
+ static unsigned hash (AllocationSiteKey key) { return (intptr_t (key.script->code + key.offset)) ^ key.kind; }
};
void
TypeCompartment::sweep (FreeOp *)
diff --git a/gcc/testsuite/g++.dg/warn/Wunused-value-1.C b/gcc/testsuite/g++.dg/warn/Wunused-value-1.C
index 2ba5587fce0..fe34a8c4ea3 100644
--- a/gcc/testsuite/g++.dg/warn/Wunused-value-1.C
+++ b/gcc/testsuite/g++.dg/warn/Wunused-value-1.C
@@ -2,11 +2,13 @@
// { dg-do compile { target c++11 } }
// { dg-options "-Wunused" }
+typedef __INTPTR_TYPE__ intptr_t;
+
void
g ()
{
- (long) new int{};
- long(new int{});
- (long) new int();
- long(new int());
+ (intptr_t) new int{};
+ intptr_t(new int{});
+ (intptr_t) new int();
+ intptr_t(new int());
}
--
2.53.0