diff options
| author | Reka Kovacs <rekanikolett@gmail.com> | 2018-08-02 22:19:57 +0000 |
|---|---|---|
| committer | Reka Kovacs <rekanikolett@gmail.com> | 2018-08-02 22:19:57 +0000 |
| commit | 7d36e92c9c0f0d4de8bcf5e4dd55a717df956aed (patch) | |
| tree | 0087989e4e4088b82d1835b17c59ae71499c0a22 /clang/lib | |
| parent | d91a9e27a987fa3e314c6d536b767e50195bb5a8 (diff) | |
| download | bcm5719-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.cpp | 7 |
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; |

