[PATCH] D19385: [scan-build] fix logic error warnings emitted on clang code base
Apelete Seketeli via cfe-commits
cfe-commits at lists.llvm.org
Tue Apr 26 15:00:52 PDT 2016
apelete updated this revision to Diff 55103.
apelete added a comment.
[scan-build] fix logic error warnings emitted on clang code base
Chnages since last revision:
- lib/Format/Format.cpp: removed all changes, redenderd obsolete by upstream.
http://reviews.llvm.org/D19385
Files:
lib/AST/DeclObjC.cpp
lib/Frontend/CompilerInstance.cpp
lib/Sema/SemaExprCXX.cpp
lib/Sema/SemaLookup.cpp
lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
Index: lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
===================================================================
--- lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
+++ lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
@@ -297,6 +297,7 @@
if (!Diags.empty())
SM = &Diags.front()->path.front()->getLocation().getManager();
+ assert(SM && "SourceManager is NULL, cannot iterate through the diagnostics");
for (std::vector<const PathDiagnostic*>::iterator DI = Diags.begin(),
DE = Diags.end(); DI != DE; ++DI) {
Index: lib/Sema/SemaLookup.cpp
===================================================================
--- lib/Sema/SemaLookup.cpp
+++ lib/Sema/SemaLookup.cpp
@@ -3744,6 +3744,7 @@
bool AnyVisibleDecls = !NewDecls.empty();
for (/**/; DI != DE; ++DI) {
+ assert(*DI && "TypoCorrection iterator cannot be NULL");
NamedDecl *VisibleDecl = *DI;
if (!LookupResult::isVisible(SemaRef, *DI))
VisibleDecl = findAcceptableDecl(SemaRef, *DI);
Index: lib/Sema/SemaExprCXX.cpp
===================================================================
--- lib/Sema/SemaExprCXX.cpp
+++ lib/Sema/SemaExprCXX.cpp
@@ -398,8 +398,10 @@
SourceLocation TypeidLoc,
Expr *E,
SourceLocation RParenLoc) {
+ assert(E && "expression operand is NULL, cannot build C++ typeid expression");
+
bool WasEvaluated = false;
- if (E && !E->isTypeDependent()) {
+ if (!E->isTypeDependent()) {
if (E->getType()->isPlaceholderType()) {
ExprResult result = CheckPlaceholderExpr(E);
if (result.isInvalid()) return ExprError();
Index: lib/Frontend/CompilerInstance.cpp
===================================================================
--- lib/Frontend/CompilerInstance.cpp
+++ lib/Frontend/CompilerInstance.cpp
@@ -742,7 +742,7 @@
// Figure out where to get and map in the main file.
if (InputFile != "-") {
- const FileEntry *File;
+ const FileEntry *File = nullptr;
if (Opts.FindPchSource.empty()) {
File = FileMgr.getFile(InputFile, /*OpenFile=*/true);
} else {
@@ -760,13 +760,14 @@
SmallVector<std::pair<const FileEntry *, const DirectoryEntry *>, 16>
Includers;
Includers.push_back(std::make_pair(FindFile, FindFile->getDir()));
- File = HS->LookupFile(InputFile, SourceLocation(), /*isAngled=*/false,
- /*FromDir=*/nullptr,
- /*CurDir=*/UnusedCurDir, Includers,
- /*SearchPath=*/nullptr,
- /*RelativePath=*/nullptr,
- /*RequestingModule=*/nullptr,
- /*SuggestedModule=*/nullptr, /*SkipCache=*/true);
+ if (HS)
+ File = HS->LookupFile(InputFile, SourceLocation(), /*isAngled=*/false,
+ /*FromDir=*/nullptr,
+ /*CurDir=*/UnusedCurDir, Includers,
+ /*SearchPath=*/nullptr,
+ /*RelativePath=*/nullptr,
+ /*RequestingModule=*/nullptr,
+ /*SuggestedModule=*/nullptr, /*SkipCache=*/true);
// Also add the header to /showIncludes output.
if (File)
DepOpts.ShowIncludesPretendHeader = File->getName();
Index: lib/AST/DeclObjC.cpp
===================================================================
--- lib/AST/DeclObjC.cpp
+++ lib/AST/DeclObjC.cpp
@@ -1577,8 +1577,10 @@
data().IvarList = layout[0].Ivar; Ix++;
curIvar = data().IvarList;
}
- for ( ; Ix != EIx; curIvar = layout[Ix].Ivar, Ix++)
+ for ( ; Ix != EIx; curIvar = layout[Ix].Ivar, Ix++) {
+ assert(curIvar && "instance variable is NULL, stop iterating through layout");
curIvar->setNextIvar(layout[Ix].Ivar);
+ }
}
}
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D19385.55103.patch
Type: text/x-patch
Size: 3933 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160426/cedfae28/attachment-0001.bin>
More information about the cfe-commits
mailing list