summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorReka Kovacs <rekanikolett@gmail.com>2018-08-02 22:19:57 +0000
committerReka Kovacs <rekanikolett@gmail.com>2018-08-02 22:19:57 +0000
commit7d36e92c9c0f0d4de8bcf5e4dd55a717df956aed (patch)
tree0087989e4e4088b82d1835b17c59ae71499c0a22 /clang/lib
parentd91a9e27a987fa3e314c6d536b767e50195bb5a8 (diff)
downloadbcm5719-llvm-7d36e92c9c0f0d4de8bcf5e4dd55a717df956aed.tar.gz
bcm5719-llvm-7d36e92c9c0f0d4de8bcf5e4dd55a717df956aed.zip
[analyzer] Add a safety check to InnerPointerChecker.
Do not crash if the CXXRecordDecl of an object is not available. llvm-svn: 338775
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp
index 29677f737f5..b253e67cffd 100644
--- a/clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp
@@ -129,8 +129,11 @@ bool InnerPointerChecker::isCalledOnStringObject(
return false;
QualType ObjTy = ObjRegion->getValueType();
- if (ObjTy.isNull() ||
- ObjTy->getAsCXXRecordDecl()->getName() != "basic_string")
+ if (ObjTy.isNull())
+ return false;
+
+ CXXRecordDecl *Decl = ObjTy->getAsCXXRecordDecl();
+ if (!Decl || Decl->getName() != "basic_string")
return false;
return true;
OpenPOWER on IntegriCloud