On 13 Mar 2024, at 12:30, Iain Sandoe <i...@sandoe.co.uk> wrote: > >> On 7 Mar 2024, at 16:48, Dimitry Andric <dimi...@andric.com> wrote: >> >> Ref: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111632 >> >> Use INCLUDE_VECTOR before including system.h, instead of directly >> including <vector>, to avoid running into poisoned identifiers. > > I would say that the patch itself is obvious, but you have not mentioned how > it was tested?
This was tested by doing a --disable-bootstrap build, on a FreeBSD system where llvm-project's libc++ is the default C++ library (specifically 15.0-CURRENT, which has llvm-project 17.0.6), against both the lang/gcc14-devel port, and against gcc master as of gcc-14-9346-g74e8cc28eda. This also required gcc-14-9360-g9970b576b7e to be applied, before it was committed to master. Note that if you do a fully bootstrapped build, there aren't any compile errors, since it will compile the plugins against a freshly built libstdc++: it has already transitively included <vector> via other standard headers, so the #include <vector> statement after #include "system.h" effectively does nothing, and won't run into poisoned identifiers. You would only get compile errors on those poisoned identifiers with the non-bootstrapped, single-stage build which compiles everything against the host system's C++ headers. -Dimitry