[gcc(refs/users/aoliva/heads/testme)] testsuite: add hostedlib requirements to multiple C++ tests
Alexandre Oliva
aoliva@gcc.gnu.org
Fri Jan 16 22:35:26 GMT 2026
https://gcc.gnu.org/g:88d2d0bdab583d9add52a13c5701be977cbbffcd
commit 88d2d0bdab583d9add52a13c5701be977cbbffcd
Author: Alexandre Oliva <oliva@adacore.com>
Date: Fri Jan 16 19:22:30 2026 -0300
testsuite: add hostedlib requirements to multiple C++ tests
Various C++ tests added in the gcc-15 cycle require features that are
only available when libstdc++-v3 is built in hosted mode, so they fail
when this is not the case. Skip them if ! hostedlib.
for gcc/testsuite/ChangeLog
* g++.dg/DRs/dr2836.C: Skip if ! hostedlib.
* g++.dg/alias-checks.C: Likewise.
* g++.dg/contracts/pr116490.C: Likewise.
* g++.dg/coroutines/torture/pr121219.C: Likewise.
* g++.dg/cpp2a/constexpr-vector1.C: Likewise.
* g++.dg/ext/is_virtual_base_of.C: Likewise.
* g++.dg/modules/contracts-5_b.C: Likewise.
* g++.dg/modules/gmf-xtreme.C: Likewise.
* g++.dg/modules/lto-3_a.H: Likewise.
* g++.dg/modules/lto-3_b.C: Likewise.
* g++.dg/modules/xtreme-header-8.C: Likewise.
* g++.dg/opt/pr119274.C: Likewise.
* g++.dg/pr117222.C: Likewise.
* g++.dg/torture/pr105769-1.C: Likewise.
* g++.dg/torture/pr118521.C: Likewise.
* g++.dg/tree-ssa/deque-1.C: Likewise.
* g++.dg/tree-ssa/deque-2.C: Likewise.
* g++.dg/tree-ssa/pr109442.C: Likewise.
* g++.dg/tree-ssa/pr110819.C: Likewise.
* g++.dg/tree-ssa/pr116868.C: Likewise.
* g++.dg/tree-ssa/pr58483.C: Likewise.
* g++.dg/tree-ssa/pr80331.C: Likewise.
* g++.dg/tree-ssa/pr87502.C: Likewise.
* g++.dg/tree-ssa/pr96945.C: Likewise.
* g++.dg/tree-ssa/string-1.C: Likewise.
Diff:
---
gcc/testsuite/g++.dg/DRs/dr2836.C | 1 +
gcc/testsuite/g++.dg/alias-checks.C | 1 +
gcc/testsuite/g++.dg/contracts/pr116490.C | 1 +
gcc/testsuite/g++.dg/coroutines/torture/pr121219.C | 1 +
gcc/testsuite/g++.dg/cpp2a/constexpr-vector1.C | 1 +
gcc/testsuite/g++.dg/ext/is_virtual_base_of.C | 2 ++
gcc/testsuite/g++.dg/modules/contracts-5_b.C | 1 +
gcc/testsuite/g++.dg/modules/gmf-xtreme.C | 1 +
gcc/testsuite/g++.dg/modules/lto-3_a.H | 1 +
gcc/testsuite/g++.dg/modules/lto-3_b.C | 1 +
gcc/testsuite/g++.dg/modules/xtreme-header-8.C | 1 +
gcc/testsuite/g++.dg/opt/pr119274.C | 1 +
gcc/testsuite/g++.dg/pr117222.C | 1 +
gcc/testsuite/g++.dg/torture/pr105769-1.C | 1 +
gcc/testsuite/g++.dg/torture/pr118521.C | 1 +
gcc/testsuite/g++.dg/tree-ssa/deque-1.C | 2 ++
gcc/testsuite/g++.dg/tree-ssa/deque-2.C | 2 ++
gcc/testsuite/g++.dg/tree-ssa/pr109442.C | 2 ++
gcc/testsuite/g++.dg/tree-ssa/pr110819.C | 2 ++
gcc/testsuite/g++.dg/tree-ssa/pr116868.C | 2 ++
gcc/testsuite/g++.dg/tree-ssa/pr58483.C | 2 ++
gcc/testsuite/g++.dg/tree-ssa/pr80331.C | 2 ++
gcc/testsuite/g++.dg/tree-ssa/pr87502.C | 2 ++
gcc/testsuite/g++.dg/tree-ssa/pr96945.C | 2 ++
gcc/testsuite/g++.dg/tree-ssa/string-1.C | 2 ++
25 files changed, 36 insertions(+)
diff --git a/gcc/testsuite/g++.dg/DRs/dr2836.C b/gcc/testsuite/g++.dg/DRs/dr2836.C
index 88e35a7f3052..c96c6da919b5 100644
--- a/gcc/testsuite/g++.dg/DRs/dr2836.C
+++ b/gcc/testsuite/g++.dg/DRs/dr2836.C
@@ -1,6 +1,7 @@
// DR 2836 - Conversion rank of long double and extended floating-point types
// { dg-do compile { target c++23 } }
// { dg-additional-options "-mlong-double-64" { target powerpc*-*-* s390*-*-* } }
+// { dg-skip-if "required hosted libstdc++ for stdfloat" { ! hostedlib } }
#include <stdfloat>
diff --git a/gcc/testsuite/g++.dg/alias-checks.C b/gcc/testsuite/g++.dg/alias-checks.C
index ee0ac535399d..b8ff3ad605c2 100644
--- a/gcc/testsuite/g++.dg/alias-checks.C
+++ b/gcc/testsuite/g++.dg/alias-checks.C
@@ -3,6 +3,7 @@
// { dg-require-effective-target c++17 }
// { dg-require-effective-target vect_double }
// { dg-options "-O3 -fdump-tree-vect-all" }
+// { dg-skip-if "required hosted libstdc++ for cmath and iostream" { ! hostedlib } }
#include <cstdlib>
#include <cmath>
diff --git a/gcc/testsuite/g++.dg/contracts/pr116490.C b/gcc/testsuite/g++.dg/contracts/pr116490.C
index e3a5d77bafd3..6e66c2afb628 100644
--- a/gcc/testsuite/g++.dg/contracts/pr116490.C
+++ b/gcc/testsuite/g++.dg/contracts/pr116490.C
@@ -1,6 +1,7 @@
// ICE in explicit instantiation of a function with contracts
// { dg-do run }
// { dg-options "-std=c++20 -fcontracts -fcontract-continuation-mode=on" }
+// { dg-skip-if "required hosted libstdc++ for stdc++exp" { ! hostedlib } }
template<class T>
void foo(T t)
diff --git a/gcc/testsuite/g++.dg/coroutines/torture/pr121219.C b/gcc/testsuite/g++.dg/coroutines/torture/pr121219.C
index d1e7cb1e0225..1748dcaf2be3 100644
--- a/gcc/testsuite/g++.dg/coroutines/torture/pr121219.C
+++ b/gcc/testsuite/g++.dg/coroutines/torture/pr121219.C
@@ -1,5 +1,6 @@
// PR c++/121219
// { dg-do run }
+// { dg-skip-if "required hosted libstdc++ for stdexcept" { ! hostedlib } }
#include <coroutine>
#ifdef OUTPUT
diff --git a/gcc/testsuite/g++.dg/cpp2a/constexpr-vector1.C b/gcc/testsuite/g++.dg/cpp2a/constexpr-vector1.C
index 196c6ec51fcf..1d6a059615a9 100644
--- a/gcc/testsuite/g++.dg/cpp2a/constexpr-vector1.C
+++ b/gcc/testsuite/g++.dg/cpp2a/constexpr-vector1.C
@@ -1,6 +1,7 @@
// PR c++/113835
// { dg-timeout-factor 0.05 }
// { dg-do compile { target c++20_only } }
+// { dg-skip-if "required hosted libstdc++ for vector" { ! hostedlib } }
#include <vector>
const std::size_t N = 1'000'000;
diff --git a/gcc/testsuite/g++.dg/ext/is_virtual_base_of.C b/gcc/testsuite/g++.dg/ext/is_virtual_base_of.C
index 775a35393885..1c3049d847a5 100644
--- a/gcc/testsuite/g++.dg/ext/is_virtual_base_of.C
+++ b/gcc/testsuite/g++.dg/ext/is_virtual_base_of.C
@@ -1,4 +1,6 @@
// { dg-do run }
+// { dg-skip-if "required hosted libstdc++ for cassert" { ! hostedlib } }
+
#include <cassert>
class A1
diff --git a/gcc/testsuite/g++.dg/modules/contracts-5_b.C b/gcc/testsuite/g++.dg/modules/contracts-5_b.C
index 0e794b8ae453..96651fd5c75d 100644
--- a/gcc/testsuite/g++.dg/modules/contracts-5_b.C
+++ b/gcc/testsuite/g++.dg/modules/contracts-5_b.C
@@ -1,6 +1,7 @@
// PR c++/108205
// { dg-module-do run }
// { dg-additional-options "-fmodules -fcontracts -fcontract-continuation-mode=on" }
+// { dg-skip-if "required hosted libstdc++ for experimental/contract" { ! hostedlib } }
#include <experimental/contract>
import test;
diff --git a/gcc/testsuite/g++.dg/modules/gmf-xtreme.C b/gcc/testsuite/g++.dg/modules/gmf-xtreme.C
index 0a01c405291d..a9bee60001ce 100644
--- a/gcc/testsuite/g++.dg/modules/gmf-xtreme.C
+++ b/gcc/testsuite/g++.dg/modules/gmf-xtreme.C
@@ -1,6 +1,7 @@
// PR c++/114630
// { dg-additional-options "-fmodules-ts -fdump-lang-module" }
// { dg-module-cmi empty }
+// { dg-skip-if "required hosted libstdc++ for any in xtreme-header.h" { ! hostedlib } }
module;
#include "xtreme-header.h"
diff --git a/gcc/testsuite/g++.dg/modules/lto-3_a.H b/gcc/testsuite/g++.dg/modules/lto-3_a.H
index be63699e66f5..95fb738e9196 100644
--- a/gcc/testsuite/g++.dg/modules/lto-3_a.H
+++ b/gcc/testsuite/g++.dg/modules/lto-3_a.H
@@ -1,6 +1,7 @@
// PR c++/118961
// { dg-additional-options "-fmodule-header -std=c++20" }
// { dg-module-cmi {} }
+// { dg-skip-if "required hosted libstdc++ for string" { ! hostedlib } }
// We shouldn't ICE when linking against the standard library.
#include <string>
diff --git a/gcc/testsuite/g++.dg/modules/lto-3_b.C b/gcc/testsuite/g++.dg/modules/lto-3_b.C
index f459596f730f..6b5854f1f1c0 100644
--- a/gcc/testsuite/g++.dg/modules/lto-3_b.C
+++ b/gcc/testsuite/g++.dg/modules/lto-3_b.C
@@ -2,6 +2,7 @@
// { dg-module-do link }
// { dg-require-effective-target lto }
// { dg-additional-options "-fmodules -flto -static -std=c++20" }
+// { dg-skip-if "required hosted libstdc++ for string in lto-3_a.H" { ! hostedlib } }
import "lto-3_a.H";
diff --git a/gcc/testsuite/g++.dg/modules/xtreme-header-8.C b/gcc/testsuite/g++.dg/modules/xtreme-header-8.C
index 82c0b59fefe3..dc8ae240ffe1 100644
--- a/gcc/testsuite/g++.dg/modules/xtreme-header-8.C
+++ b/gcc/testsuite/g++.dg/modules/xtreme-header-8.C
@@ -1,6 +1,7 @@
// PR c++/115126
// { dg-additional-options "-fmodules-ts -Wtemplate-names-tu-local" }
// { dg-module-cmi xstd }
+// { dg-skip-if "required hosted libstdc++ for any in xtreme-header.h" { ! hostedlib } }
export module xstd;
extern "C++" {
diff --git a/gcc/testsuite/g++.dg/opt/pr119274.C b/gcc/testsuite/g++.dg/opt/pr119274.C
index 79b406162db9..75503d3683d7 100644
--- a/gcc/testsuite/g++.dg/opt/pr119274.C
+++ b/gcc/testsuite/g++.dg/opt/pr119274.C
@@ -1,5 +1,6 @@
// { dg-do compile { target c++11 } }
// { dg-options "-O2 -Wall" }
+// { dg-skip-if "required hosted libstdc++ for vector" { ! hostedlib } }
#include <cstdlib>
#include <vector>
diff --git a/gcc/testsuite/g++.dg/pr117222.C b/gcc/testsuite/g++.dg/pr117222.C
index 60cf6e30ed54..70dc8a1eef17 100644
--- a/gcc/testsuite/g++.dg/pr117222.C
+++ b/gcc/testsuite/g++.dg/pr117222.C
@@ -1,6 +1,7 @@
// { dg-do compile }
// { dg-require-effective-target c++11 }
// { dg-options "-O3 -fdump-tree-evrp" }
+// { dg-skip-if "required hosted libstdc++ for vector" { ! hostedlib } }
#include <vector>
int main()
diff --git a/gcc/testsuite/g++.dg/torture/pr105769-1.C b/gcc/testsuite/g++.dg/torture/pr105769-1.C
index 3fe973656b84..d176bdccf479 100644
--- a/gcc/testsuite/g++.dg/torture/pr105769-1.C
+++ b/gcc/testsuite/g++.dg/torture/pr105769-1.C
@@ -1,4 +1,5 @@
// { dg-do run }
+// { dg-skip-if "required hosted libstdc++ for functional function" { ! hostedlib } }
// PR tree-optimization/105769
diff --git a/gcc/testsuite/g++.dg/torture/pr118521.C b/gcc/testsuite/g++.dg/torture/pr118521.C
index 08836bd5f0e9..e432f99220dc 100644
--- a/gcc/testsuite/g++.dg/torture/pr118521.C
+++ b/gcc/testsuite/g++.dg/torture/pr118521.C
@@ -1,5 +1,6 @@
// { dg-do compile }
// { dg-additional-options "-Wall" }
+// { dg-skip-if "required hosted libstdc++ for vector" { ! hostedlib } }
#include <vector> // { dg-bogus "writing 1 byte into a region of size 0" "" { target *-*-* } 0 }
diff --git a/gcc/testsuite/g++.dg/tree-ssa/deque-1.C b/gcc/testsuite/g++.dg/tree-ssa/deque-1.C
index c639ebb1a5f3..04b1dbb9c8aa 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/deque-1.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/deque-1.C
@@ -1,5 +1,7 @@
// { dg-do compile }
// { dg-options "-O1 -fdump-tree-optimized" }
+// { dg-skip-if "required hosted libstdc++ for deque" { ! hostedlib } }
+
#include <deque>
void
test(std::deque<int> &q, int v)
diff --git a/gcc/testsuite/g++.dg/tree-ssa/deque-2.C b/gcc/testsuite/g++.dg/tree-ssa/deque-2.C
index 7e268b3f018d..c1534f65b80a 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/deque-2.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/deque-2.C
@@ -1,5 +1,7 @@
// { dg-do compile }
// { dg-options "-O3 -fdump-tree-optimized" }
+// { dg-skip-if "required hosted libstdc++ for deque" { ! hostedlib } }
+
#include <deque>
std::deque<int *>
test2(std::deque<int *> &q)
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr109442.C b/gcc/testsuite/g++.dg/tree-ssa/pr109442.C
index dc335d136567..6753bb947e92 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr109442.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr109442.C
@@ -1,5 +1,7 @@
// { dg-do compile { target c++11 } }
// { dg-options "-O2 -fdump-tree-optimized" }
+// { dg-skip-if "required hosted libstdc++ for vector" { ! hostedlib } }
+
#include <vector>
#define T int
T vat1(std::vector<T> v1) {
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr110819.C b/gcc/testsuite/g++.dg/tree-ssa/pr110819.C
index 8305589a19d0..90bbe916f63b 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr110819.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr110819.C
@@ -1,5 +1,7 @@
// { dg-do compile { target c++11 } }
// { dg-options "-O1 -fdump-tree-optimized" }
+// { dg-skip-if "required hosted libstdc++ for vector" { ! hostedlib } }
+
#include<vector>
void f(int);
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr116868.C b/gcc/testsuite/g++.dg/tree-ssa/pr116868.C
index 8580661d35ce..55337b2219b8 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr116868.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr116868.C
@@ -1,5 +1,7 @@
// { dg-do compile { target c++11 } }
// { dg-options "-O2 -fdump-tree-optimized" }
+// { dg-skip-if "required hosted libstdc++ for vector" { ! hostedlib } }
+
#include <vector>
int sumVector() {
const std::vector<int> vec = {1};
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr58483.C b/gcc/testsuite/g++.dg/tree-ssa/pr58483.C
index 8305589a19d0..90bbe916f63b 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr58483.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr58483.C
@@ -1,5 +1,7 @@
// { dg-do compile { target c++11 } }
// { dg-options "-O1 -fdump-tree-optimized" }
+// { dg-skip-if "required hosted libstdc++ for vector" { ! hostedlib } }
+
#include<vector>
void f(int);
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr80331.C b/gcc/testsuite/g++.dg/tree-ssa/pr80331.C
index 85034504f2f8..fd556ed7407d 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr80331.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr80331.C
@@ -1,5 +1,7 @@
// { dg-do compile }
// { dg-additional-options "-O2 -fdump-tree-optimized" }
+// { dg-skip-if "required hosted libstdc++ for string" { ! hostedlib } }
+
#include<string>
int sain() {
const std::string remove_me("remove_me");
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr87502.C b/gcc/testsuite/g++.dg/tree-ssa/pr87502.C
index e8e0cd388fb0..8b4b5d8c78fb 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr87502.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr87502.C
@@ -1,5 +1,7 @@
// { dg-do compile }
// { dg-additional-options "-O2 -fdump-tree-optimized" }
+// { dg-skip-if "required hosted libstdc++ for string" { ! hostedlib } }
+
#include <string>
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr96945.C b/gcc/testsuite/g++.dg/tree-ssa/pr96945.C
index 07c141340c0b..e4ea022d6656 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr96945.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr96945.C
@@ -1,5 +1,7 @@
// { dg-do compile { target c++11 } }
// { dg-options "-O1 -fdump-tree-optimized" }
+// { dg-skip-if "required hosted libstdc++ for vector" { ! hostedlib } }
+
#include <vector>
struct c {
c() = default;
diff --git a/gcc/testsuite/g++.dg/tree-ssa/string-1.C b/gcc/testsuite/g++.dg/tree-ssa/string-1.C
index d38c23a7628b..ff65bad97717 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/string-1.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/string-1.C
@@ -1,5 +1,7 @@
/* { dg-do compile } */
/* { dg-options "-O3 -std=c++20 -fdump-tree-optimized" } */
+// { dg-skip-if "required hosted libstdc++ for string" { ! hostedlib } }
+
#include <string>
std::string
test (std::string &a)
More information about the Gcc-cvs
mailing list