// 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>
// { 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>
// 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)
// PR c++/121219
// { dg-do run }
+// { dg-skip-if "required hosted libstdc++ for stdexcept" { ! hostedlib } }
#include <coroutine>
#ifdef OUTPUT
// 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;
// { dg-do run }
+// { dg-skip-if "required hosted libstdc++ for cassert" { ! hostedlib } }
+
#include <cassert>
class A1
// 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;
// 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"
// 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>
// { 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";
// 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++" {
// { dg-do compile { target c++11 } }
// { dg-options "-O2 -Wall" }
+// { dg-skip-if "required hosted libstdc++ for vector" { ! hostedlib } }
#include <cstdlib>
#include <vector>
// { 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()
// { dg-do run }
+// { dg-skip-if "required hosted libstdc++ for functional function" { ! hostedlib } }
// PR tree-optimization/105769
// { 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 }
// { 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)
// { 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)
// { 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) {
// { 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);
// { 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};
// { 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);
// { 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");
// { dg-do compile }
// { dg-additional-options "-O2 -fdump-tree-optimized" }
+// { dg-skip-if "required hosted libstdc++ for string" { ! hostedlib } }
+
#include <string>
// { 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;
/* { 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)