On Sun, May 01, 2022 at 11:02:29AM +0100, Iain Sandoe wrote: > All of these show new fails (presumably because checking is off): > > XPASS: c-c++-common/goacc/kernels-decompose-pr100400-1-2.c -std=c++98 > (internal compiler error) > FAIL: c-c++-common/goacc/kernels-decompose-pr100400-1-2.c -std=c++98 (test > for excess errors) > XPASS: c-c++-common/goacc/kernels-decompose-pr100400-1-2.c -std=c++14 > (internal compiler error) > FAIL: c-c++-common/goacc/kernels-decompose-pr100400-1-2.c -std=c++14 (test > for excess errors) > XPASS: c-c++-common/goacc/kernels-decompose-pr100400-1-2.c -std=c++17 > (internal compiler error) > FAIL: c-c++-common/goacc/kernels-decompose-pr100400-1-2.c -std=c++17 (test > for excess errors) > XPASS: c-c++-common/goacc/kernels-decompose-pr100400-1-2.c -std=c++20 > (internal compiler error) > FAIL: c-c++-common/goacc/kernels-decompose-pr100400-1-2.c -std=c++20 (test > for excess errors)
We can live with that for 12.1. > earlier x86 darwin is particularly noisy test-wise because there seem to be a > lot of newer AVX512 tests > that do not check for support from the assembler etc. That would be nice to fix for 12.2, can you file a PR with a list? > However from Darwin12+ (macOS 10.8) we expect to be able to bootstrap with > the host clang, but: > > Not OK: > x86_64-darwin{12..15} FAIL to bootstrap with host clang, this is a regression. > > the reason is that "gcc/analyzer/region-model.cc” uses initializer_lists, and > it seems that <initializer_list> > is not transitively included by any used headers for _LIBCPP_VERSION < 4000. > I fixed that locally by > adding initializer_list into system.h (and adding INCLUDE_INITIALIZER_LIST to > the top of > gcc/analyzer/region-model.cc) > - with that change those versions do bootstrap and test OK*** >From what I can see, with libstdc++ it works because <utility> which is included by system.h includes <initializer_list>. If I rename initializer_list in analyzer/region-model.ii to initializer_listx, I also get: ../../gcc/analyzer/region-model.cc: In function ‘void ana::selftest::test_binop_svalue_folding()’: ../../gcc/analyzer/region-model.cc:4966:48: error: deducing from brace-enclosed initializer list requires ‘#include <initializer_list>’ 4508 | +++ |+#include <initializer_list> 4509 | static void ...... 4966 | for (auto op : {BIT_IOR_EXPR, TRUTH_OR_EXPR}) | ^ ../../gcc/analyzer/region-model.cc:4978:49: error: deducing from brace-enclosed initializer list requires ‘#include <initializer_list>’ 4978 | for (auto op : {BIT_AND_EXPR, TRUTH_AND_EXPR}) | ^ I think we have 2 options, one is do what you wrote above, INCLUDE_INITIALIZER_LIST defined before system.h to get #include <initializer_list>. The other option is just to include that unconditionally, it is a very small header. For libstdc++ it will make no difference as it is included anyway and the header is really small there, libc++ includes <cstddef> which isn't normally included and system.h includes <stddef.h> instead. Jakub