Hi! After recent libstdc++ header changes <functional> no longer includes (parts of?) <array> and doesn't have to and <memory> no longer includes (parts of?) <initializer_list>. This patch fixes: testsuite/g++.dg/pr71389.C:10:39: error: aggregate 'std::array<std::array<int, 16>, 16> v13' has incomplete type and cannot be defined as well as testsuite/g++.dg/cpp0x/initlist48.C:11:6: error: 'initializer_list' in namespace 'std' does not name a template type; did you mean 'uninitialized_fill'?
Tested on x86_64-linux, committed to trunk as obvious: 2021-07-29 Jakub Jelinek <ja...@redhat.com> PR testsuite/101647 * g++.dg/pr71389.C: Include <array> instead of <functional>. * g++.dg/cpp0x/initlist48.C: Include also <initializer_list>. --- gcc/testsuite/g++.dg/cpp0x/initlist48.C +++ gcc/testsuite/g++.dg/cpp0x/initlist48.C @@ -2,6 +2,7 @@ // { dg-do compile { target c++11 } } #include <memory> +#include <initializer_list> struct Foo{ int i; --- gcc/testsuite/g++.dg/pr71389.C +++ gcc/testsuite/g++.dg/pr71389.C @@ -1,7 +1,7 @@ // { dg-do compile { target i?86-*-* x86_64-*-* } } // { dg-options "-std=c++11 -O3 -march=ivybridge" } -#include <functional> +#include <array> extern int le_s6, le_s9, le_s11; long foo_v14[16][16]; Jakub