I have committed the attached change to ease testing with bare bones cross-compilers with no libstdc++ headers.
Tested on x86_64 and with a powerpc64 cross-compiler. Martin
commit c68cac900ab4ccaf6b1a31168bc9a302ebc46428 Author: Martin Sebor <mse...@redhat.com> Date: Thu Jul 8 16:02:01 2021 -0600 Avoid including <new> to make cross-compiler testing easy. gcc/testsuite/ChangeLog: * g++.dg/warn/Warray-bounds-11.C: Avoid including <new>. * g++.dg/warn/Warray-bounds-13.C: Same. diff --git a/gcc/testsuite/g++.dg/warn/Warray-bounds-11.C b/gcc/testsuite/g++.dg/warn/Warray-bounds-11.C index 70b39122f78..9670898770f 100644 --- a/gcc/testsuite/g++.dg/warn/Warray-bounds-11.C +++ b/gcc/testsuite/g++.dg/warn/Warray-bounds-11.C @@ -4,7 +4,24 @@ { dg-do compile } { dg-options "-O2 -Wall -Warray-bounds -ftrack-macro-expansion=0" } */ -#include <new> +#if 0 +// Avoid including <new> to make cross-compiler testing easy. +// #include <new> +#else +namespace std { + +typedef __SIZE_TYPE__ size_t; +struct nothrow_t { }; +extern const nothrow_t nothrow; + +} + +void* operator new (std::size_t, const std::nothrow_t &) throw () + __attribute__ ((__alloc_size__ (1), __malloc__)); +void* operator new[] (std::size_t, const std::nothrow_t &) throw () + __attribute__ ((__alloc_size__ (1), __malloc__)); + +#endif typedef __INT32_TYPE__ int32_t; diff --git a/gcc/testsuite/g++.dg/warn/Warray-bounds-13.C b/gcc/testsuite/g++.dg/warn/Warray-bounds-13.C index 2d3e9dcfd68..449324a315d 100644 --- a/gcc/testsuite/g++.dg/warn/Warray-bounds-13.C +++ b/gcc/testsuite/g++.dg/warn/Warray-bounds-13.C @@ -4,7 +4,24 @@ { dg-do compile } { dg-options "-O2 -Wall -Warray-bounds -ftrack-macro-expansion=0" } */ -#include <new> +#if 0 +// Avoid including <new> to make cross-compiler testing easy. +// #include <new> +#else +namespace std { + +typedef __SIZE_TYPE__ size_t; +struct nothrow_t { }; +extern const nothrow_t nothrow; + +} + +void* operator new (std::size_t, const std::nothrow_t &) throw () + __attribute__ ((__alloc_size__ (1), __malloc__)); +void* operator new[] (std::size_t, const std::nothrow_t &) throw () + __attribute__ ((__alloc_size__ (1), __malloc__)); + +#endif typedef __INT32_TYPE__ int32_t;