Using -isystem marks the headers as system headers, which means that we
don't actually get all the warnings that we'd normally get if we included
the headers as user headers.
The goal of the test suite is normally to mirror as closely as possible
how users would use the library. Technically, this change goes against
that philosophy, since users should be using -isystem (if they ever
need to specify the libc++ path explicitly, which should be a rare
occurence). However, I believe fishing out additional warnings from
the headers provides more value, hence this change. Ideally, we'd be
able to still use -isystem, but instruct Clang to still emit warnings
from the libc++ headers (e.g. we could tell Clang to emit warnings in
any file inside <...>/usr/include/c++/v1).
Then personally I'd prefer to pass -Wno-macro-redefined in those specific tests. We shouldn't do anything in <__config> that is beneficial only for certain tests in the test suite; we should do it here iff we think it'll benefit real users. Do we want real users to be able to do, like, -D_LIBCPP_ABI_ALTERNATE_STRING_LAYOUT=1? If so, then lines 95-96 are good but the comment on line 94 should talk about that, not about tests in the test suite.