summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2010-09-02 22:18:59 +0000
committerJohn McCall <rjmccall@apple.com>2010-09-02 22:18:59 +0000
commit25f7aa81589e7e78cf38065e66257c45a0851283 (patch)
treecbf7f05c0e862f17686a7856f189fa61951f6cf1
parent2912df072d891383c7c007f8fcff9ad8a2520440 (diff)
downloadbcm5719-llvm-25f7aa81589e7e78cf38065e66257c45a0851283.tar.gz
bcm5719-llvm-25f7aa81589e7e78cf38065e66257c45a0851283.zip
Experimentally move the tautological comparison warnings from -Wsign-compare
to -Wtautological-compare. This implies that they're now on by default. If this causes chaos, I'll figure something else out. llvm-svn: 112877
-rw-r--r--clang/include/clang/Basic/DiagnosticGroups.td1
-rw-r--r--clang/include/clang/Basic/DiagnosticSemaKinds.td6
-rw-r--r--clang/test/Analysis/additive-folding.c4
-rw-r--r--clang/test/Analysis/null-deref-ps.c2
4 files changed, 7 insertions, 6 deletions
diff --git a/clang/include/clang/Basic/DiagnosticGroups.td b/clang/include/clang/Basic/DiagnosticGroups.td
index f6fb79d03ce..d46e9a7c08b 100644
--- a/clang/include/clang/Basic/DiagnosticGroups.td
+++ b/clang/include/clang/Basic/DiagnosticGroups.td
@@ -100,6 +100,7 @@ def SignCompare : DiagGroup<"sign-compare">;
def : DiagGroup<"stack-protector">;
def : DiagGroup<"switch-default">;
def : DiagGroup<"synth">;
+def TautologicalCompare : DiagGroup<"tautological-compare">;
// Preprocessor warnings.
def : DiagGroup<"builtin-macro-redefined">;
diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td
index d3fdb8050ba..081190bb270 100644
--- a/clang/include/clang/Basic/DiagnosticSemaKinds.td
+++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td
@@ -2198,10 +2198,10 @@ def warn_mixed_sign_conditional : Warning<
InGroup<SignCompare>, DefaultIgnore;
def warn_lunsigned_always_true_comparison : Warning<
"comparison of unsigned expression %0 is always %1">,
- InGroup<SignCompare>, DefaultIgnore;
+ InGroup<TautologicalCompare>;
def warn_runsigned_always_true_comparison : Warning<
"comparison of %0 unsigned expression is always %1">,
- InGroup<SignCompare>, DefaultIgnore;
+ InGroup<TautologicalCompare>;
def err_invalid_this_use : Error<
"invalid use of 'this' outside of a nonstatic member function">;
@@ -3062,7 +3062,7 @@ def err_ret_local_block : Error<
// Array comparisons have similar warnings
def warn_comparison_always : Warning<
"%select{self-|array }0comparison always evaluates to %select{false|true|a constant}1">,
- InGroup<DiagGroup<"tautological-compare">>;
+ InGroup<TautologicalCompare>;
def warn_stringcompare : Warning<
"result of comparison against %select{a string literal|@encode}0 is "
diff --git a/clang/test/Analysis/additive-folding.c b/clang/test/Analysis/additive-folding.c
index e4a56513396..713f788ac0d 100644
--- a/clang/test/Analysis/additive-folding.c
+++ b/clang/test/Analysis/additive-folding.c
@@ -183,14 +183,14 @@ void tautologyGT (unsigned a) {
void tautologyGE (unsigned a) {
char* b = malloc(1);
- if (a >= 0)
+ if (a >= 0) // expected-warning{{always true}}
free(b);
return; // no-warning
}
void tautologyLT (unsigned a) {
char* b = malloc(1);
- if (a < 0)
+ if (a < 0) // expected-warning{{always false}}
return; // expected-warning{{never executed}}
free(b);
}
diff --git a/clang/test/Analysis/null-deref-ps.c b/clang/test/Analysis/null-deref-ps.c
index 8daa8450681..d4d18b4ff3b 100644
--- a/clang/test/Analysis/null-deref-ps.c
+++ b/clang/test/Analysis/null-deref-ps.c
@@ -237,7 +237,7 @@ int* f10(int* p, signed char x, int y) {
// Test case from <rdar://problem/6407949>
void f11(unsigned i) {
int *x = 0;
- if (i >= 0) {
+ if (i >= 0) { // expected-warning{{always true}}
// always true
} else {
*x = 42; // no-warning
OpenPOWER on IntegriCloud