зеркало из https://github.com/microsoft/clang-1.git
[analyzer] Don't repeat a bug equivalence class if every report is invalid.
I removed this check in the recursion->iteration commit, but forgot that generatePathDiagnostic may be called multiple times if there are multiple PathDiagnosticConsumers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177214 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
2710ed8fd9
Коммит
9a9fe4068e
|
@ -2114,13 +2114,23 @@ bool GRBugReporter::generatePathDiagnostic(PathDiagnostic& PD,
|
|||
ArrayRef<BugReport *> &bugReports) {
|
||||
assert(!bugReports.empty());
|
||||
|
||||
bool HasValid = false;
|
||||
SmallVector<const ExplodedNode *, 32> errorNodes;
|
||||
for (ArrayRef<BugReport*>::iterator I = bugReports.begin(),
|
||||
E = bugReports.end();
|
||||
I != E; ++I) {
|
||||
errorNodes.push_back((*I)->getErrorNode());
|
||||
E = bugReports.end(); I != E; ++I) {
|
||||
if ((*I)->isValid()) {
|
||||
HasValid = true;
|
||||
errorNodes.push_back((*I)->getErrorNode());
|
||||
} else {
|
||||
errorNodes.push_back(0);
|
||||
}
|
||||
}
|
||||
|
||||
// If all the reports have been marked invalid by a previous path generation,
|
||||
// we're done.
|
||||
if (!HasValid)
|
||||
return false;
|
||||
|
||||
typedef PathDiagnosticConsumer::PathGenerationScheme PathGenerationScheme;
|
||||
PathGenerationScheme ActiveScheme = PC.getGenerationScheme();
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче