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

Reply via email to