diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2014-11-11 19:59:16 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2014-11-11 19:59:16 +0000 |
commit | c5fd4844da5233d514a43762d1670a912d7ce3ac (patch) | |
tree | da6e7139c3ace3f9bc837af0d7b0f96e310f9a68 /clang/lib/Sema/SemaExpr.cpp | |
parent | 944547deab183814b199018a7389df91cd384cdb (diff) | |
download | bcm5719-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.cpp | 6 |
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; |