]> granicus.if.org Git - clang/commitdiff
Suppress warnings if their instantiation location is in a system header, not
authorJohn McCall <rjmccall@apple.com>
Thu, 11 Feb 2010 10:04:29 +0000 (10:04 +0000)
committerJohn McCall <rjmccall@apple.com>
Thu, 11 Feb 2010 10:04:29 +0000 (10:04 +0000)
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

lib/Basic/Diagnostic.cpp

index b2f13bba8d138c5bbf6c25005999f942d5fac10e..094f7760a8ec430d2433181ecc0836d47abb16f5 100644 (file)
@@ -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;