зеркало из https://github.com/microsoft/clang-1.git
Suppress warnings if their instantiation location is in a system header, not
their spelling location. This prevents warnings from being swallowed just because the caret is on the first parenthesis in, say, NULL. This is an experiment; the risk is that there might be a substantial number of system headers which #define symbols to expressions which inherently cause warnings. My theory is that that's rare enough that it can be worked around case-by-case, and that producing useful warnings around NULL is worth it. But I'm willing to accept that I might be empirically wrong. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95870 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
5c41ee8c49
Коммит
779cf424a1
|
@ -629,7 +629,7 @@ bool Diagnostic::ProcessDiag() {
|
|||
// it.
|
||||
if (SuppressSystemWarnings && !ShouldEmitInSystemHeader &&
|
||||
Info.getLocation().isValid() &&
|
||||
Info.getLocation().getSpellingLoc().isInSystemHeader() &&
|
||||
Info.getLocation().getInstantiationLoc().isInSystemHeader() &&
|
||||
(DiagLevel != Diagnostic::Note || LastDiagLevel == Diagnostic::Ignored)) {
|
||||
LastDiagLevel = Diagnostic::Ignored;
|
||||
return false;
|
||||
|
|
Загрузка…
Ссылка в новой задаче