This converts some dependency includes to use -isystem, so that we can enable additional compiler checks and warnings independent of the conformance of those dependencies.
The included new check is -Wdocumentation, which was previously proposed under #13914. See #14103 for examples of issues this has identified.
Here’s a significant list of other clang checks we could consider given this. Some additional checks would require additional -isystem conversions, e.g. LevelDB is not converted here: -Wreserved-id-macro -Wthread-safety-attributes #15556 -Wthread-safety-negative -Wfloat-equal -Wfloat-conversion -Wsign-conversion -Wstring-conversion -Wcast-qual -Wcast-align -Wshorten-64-to-32 -Wconversion -Wfloat-conversion -Wdouble-promotion ~-Wshadow #15377~ -Wshadow-field-in-constructor -Wunused-exception-parameter -Wunreachable-code-break -Wdocumentation-unknown-command -Wgnu-zero-variadic-macro-arguments -Wgnu-anonymous-struct -Wglobal-constructors -Wexit-time-destructors -Wnon-virtual-dtor -Wweak-vtables -Wcomma -Wmissing-variable-declarations -Wundefined-func-template -Wzero-as-null-pointer-constant #15112 -Winconsistent-missing-destructor-override -Wswitch-enum -Wcovered-switch-default -Wmissing-noreturn -Wextra-semi -Wc++17-extensions -Wpadded -Wold-style-cast -Wmissing-prototypes