aboutsummaryrefslogtreecommitdiff
path: root/lib/Checker/CallAndMessageChecker.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Checker/CallAndMessageChecker.cpp')
-rw-r--r--lib/Checker/CallAndMessageChecker.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/Checker/CallAndMessageChecker.cpp b/lib/Checker/CallAndMessageChecker.cpp
index 0d397a2942..be09e51b75 100644
--- a/lib/Checker/CallAndMessageChecker.cpp
+++ b/lib/Checker/CallAndMessageChecker.cpp
@@ -276,7 +276,9 @@ void CallAndMessageChecker::EmitNilReceiverBug(CheckerContext &C,
static bool SupportsNilWithFloatRet(const llvm::Triple &triple) {
return triple.getVendor() == llvm::Triple::Apple &&
- triple.getDarwinMajorNumber() >= 9;
+ (triple.getDarwinMajorNumber() >= 9 ||
+ triple.getArch() == llvm::Triple::arm ||
+ triple.getArch() == llvm::Triple::thumb);
}
void CallAndMessageChecker::HandleNilReceiver(CheckerContext &C,
@@ -318,7 +320,8 @@ void CallAndMessageChecker::HandleNilReceiver(CheckerContext &C,
(Ctx.FloatTy == CanRetTy ||
Ctx.DoubleTy == CanRetTy ||
Ctx.LongDoubleTy == CanRetTy ||
- Ctx.LongLongTy == CanRetTy))) {
+ Ctx.LongLongTy == CanRetTy ||
+ Ctx.UnsignedLongLongTy == CanRetTy))) {
if (ExplodedNode* N = C.GenerateSink(state))
EmitNilReceiverBug(C, ME, N);
return;