Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ignore all warnings in a specific file using LLVM/Clang

There are some files in my iOS project that have some warnings, and I want to ignore those warnings. I don't want to disable warnings in the entire project (know how to do that), just some specific files. So, is there a way to completely ignore all warnings from a specific file?

I'm using LLVM 3.0 and Clang on Xcode 4.2.

like image 763
bobbypage Avatar asked Oct 26 '11 00:10

bobbypage


2 Answers

I inherited a project that contained a lot of 320 code, and that code base threw several warnings and static analyzer errors at me that I had no interest in fixing since I will be removing that code from the project in the near future.

You can disable static analyzer warnings for a specific file by including the following compiler flag:

-Xanalyzer -analyzer-disable-all-checks 

You can combine this with -w to disable warnings for that file as well. That has allowed me to push forward with new development while not having to be pestered with the 30 or so warnings generated by that code base.

Using the instructions from above: To use Xcode to alter a file's build flags:

  1. select the target
  2. select the build phase
  3. locate the file to modify the arguments in the "Compile Sources" phase
  4. double click its "Compiler Flags" cell to edit
  5. add "-w -Xanalyzer -analyzer-disable-all-checks" to suppress warnings and clang warnings
like image 80
kcharwood Avatar answered Sep 17 '22 19:09

kcharwood


if you're just using clang, then you should use the pragma syntax for sources you maintain (assuming it is impossible to remove the warning by altering the program appropriately).

here is the syntax:

#pragma clang diagnostic push #pragma clang diagnostic ignored "-Wmultichar"  char b = 'df'; // no warning.  #pragma clang diagnostic pop 

if these are programs you cannot change and don't maintain, you should specify the warning(s) to disable for the file, rather than all. to disable all, you can add the per file argument -w. sources change, and some warnings do (or do not) apply with different build settings. clang's messages can tell you what flag equates to the generated warning.

To use Xcode to alter a file's build flags:

  • select the target
  • select the build phase
  • locate the file to modify the arguments in the "Compile Sources" phase
  • double click its "Compiler Flags" cell to edit
like image 39
justin Avatar answered Sep 20 '22 19:09

justin