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