summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaExpr.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2014-11-11 19:59:16 +0000
committerFariborz Jahanian <fjahanian@apple.com>2014-11-11 19:59:16 +0000
commitc5fd4844da5233d514a43762d1670a912d7ce3ac (patch)
treeda6e7139c3ace3f9bc837af0d7b0f96e310f9a68 /clang/lib/Sema/SemaExpr.cpp
parent944547deab183814b199018a7389df91cd384cdb (diff)
downloadbcm5719-llvm-c5fd4844da5233d514a43762d1670a912d7ce3ac.tar.gz
bcm5719-llvm-c5fd4844da5233d514a43762d1670a912d7ce3ac.zip
Patch to warn when logical evaluation of operand evalutes to a true value;
That this is a c-only patch. c++ already has this warning. This addresses rdar://18716393 llvm-svn: 221702
Diffstat (limited to 'clang/lib/Sema/SemaExpr.cpp')
-rw-r--r--clang/lib/Sema/SemaExpr.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp
index 37a08cfb081..a8429b92ed6 100644
--- a/clang/lib/Sema/SemaExpr.cpp
+++ b/clang/lib/Sema/SemaExpr.cpp
@@ -8413,7 +8413,10 @@ inline QualType Sema::CheckLogicalOperands( // C99 6.5.[13,14]
if (!LHS.get()->getType()->isScalarType() ||
!RHS.get()->getType()->isScalarType())
return InvalidOperands(Loc, LHS, RHS);
-
+
+ CheckAlwaysNonNullPointer(LHS.get());
+ CheckAlwaysNonNullPointer(RHS.get());
+
return Context.IntTy;
}
@@ -12971,6 +12974,7 @@ ExprResult Sema::CheckBooleanCondition(Expr *E, SourceLocation Loc) {
<< T << E->getSourceRange();
return ExprError();
}
+ CheckAlwaysNonNullPointer(E);
}
return E;
OpenPOWER on IntegriCloud