diff options
author | Bob Wilson <bob.wilson@apple.com> | 2012-05-03 19:47:19 +0000 |
---|---|---|
committer | Bob Wilson <bob.wilson@apple.com> | 2012-05-03 19:47:19 +0000 |
commit | c03f2df2a2b097bf2686bf32411d5022323988b2 (patch) | |
tree | d7777ba8b50ed94596fff9ce5e6522b653ac05e1 /lib/Sema/SemaChecking.cpp | |
parent | 3bb2994a7de3679fb825f3a36f3dc11ea1daf6a6 (diff) |
Disable -Wformat-extra-args for arguments defined in system headers.
Some of the NSAssert macros in OS X 10.7 are implemented in a way that
adds extra arguments that trigger the -Wformat-extra-args warning.
Earlier versions of clang failed to detect those -Wformat issues, but now
that clang is reporting those problems, we need to quiet them since there's
nothing to be done to fix them. <rdar://problem/11317765>
I don't know how to write a testcase for this. Suggestions welcome.
Patch by Ted Kremenek!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156092 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaChecking.cpp')
-rw-r--r-- | lib/Sema/SemaChecking.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/Sema/SemaChecking.cpp b/lib/Sema/SemaChecking.cpp index 002c985e0c..dad0827488 100644 --- a/lib/Sema/SemaChecking.cpp +++ b/lib/Sema/SemaChecking.cpp @@ -1975,9 +1975,12 @@ void CheckFormatHandler::DoneProcessing() { signed notCoveredArg = CoveredArgs.find_first(); if (notCoveredArg >= 0) { assert((unsigned)notCoveredArg < NumDataArgs); - EmitFormatDiagnostic(S.PDiag(diag::warn_printf_data_arg_not_used), - getDataArg((unsigned) notCoveredArg)->getLocStart(), - /*IsStringLocation*/false, getFormatStringRange()); + SourceLocation Loc = getDataArg((unsigned) notCoveredArg)->getLocStart(); + if (!S.getSourceManager().isInSystemMacro(Loc)) { + EmitFormatDiagnostic(S.PDiag(diag::warn_printf_data_arg_not_used), + Loc, + /*IsStringLocation*/false, getFormatStringRange()); + } } } } |