[cfe-commits] r156092 - /cfe/trunk/lib/Sema/SemaChecking.cpp

jahanian fjahanian at apple.com
Thu May 3 12:55:42 PDT 2012


On May 3, 2012, at 12:47 PM, Bob Wilson wrote:

> Author: bwilson
> Date: Thu May  3 14:47:19 2012
> New Revision: 156092
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=156092&view=rev
> Log:
> 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!

You can do something like:

# 1 "<command line>"
# 1 "/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h" 1 3

…

- fariborz

> 
> Modified:
>    cfe/trunk/lib/Sema/SemaChecking.cpp
> 
> Modified: cfe/trunk/lib/Sema/SemaChecking.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaChecking.cpp?rev=156092&r1=156091&r2=156092&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaChecking.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaChecking.cpp Thu May  3 14:47:19 2012
> @@ -1975,9 +1975,12 @@
>     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());
> +      }
>     }
>   }
> }
> 
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits





More information about the cfe-commits mailing list