Fix <rdar://problem/6848739>. When using -analyze, -Werror has no effect.

llvm-svn: 71172
This commit is contained in:
Ted Kremenek 2009-05-07 19:02:53 +00:00
parent f70bcf7d1a
commit 094bc31000
2 changed files with 18 additions and 0 deletions

View File

@ -0,0 +1,15 @@
// RUN: clang-cc -analyze -checker-cfref -Werror %s -analyzer-store=basic -verify &&
// RUN: clang-cc -analyze -checker-cfref -Werror %s -analyzer-store=region -verify
// This test case illustrates that using '-analyze' overrides the effect of
// -Werror. This allows basic warnings not to interfere with producing
// analyzer results.
char* f(int *p) {
return p; // expected-warning{{incompatible pointer types returning 'int *', expected 'char *'}}
}
void g(int *p) {
if (!p) *p = 0; // expected-warning{{null}}
}

View File

@ -654,6 +654,9 @@ ASTConsumer* clang::CreateAnalysisConsumer(Diagnostic &diags, Preprocessor* pp,
#include "Analyses.def"
default: break;
}
// Last, disable the effects of '-Werror' when using the AnalysisConsumer.
diags.setWarningsAsErrors(false);
return C.take();
}