forked from OSchip/llvm-project
[Diagnostics] Call setMapping on the correct diagnostic states in a few places. GetCurDiagState() was being used when it shouldn't be.
I spotted this by inspection in the for loop that wasn't using its iterator and was just acting on the current state repeatedly. This appears to have been introduced as a copy and paste bug in r140763 over 4 years ago. I have no idea how to test this. I just went back to the original commit and tried to use the variables it was using before that. llvm-svn: 254134
This commit is contained in:
parent
a52e2b22e6
commit
5e35e669a5
|
@ -226,12 +226,12 @@ void DiagnosticsEngine::setSeverity(diag::kind Diag, diag::Severity Map,
|
|||
// Update all diagnostic states that are active after the given location.
|
||||
for (DiagStatePointsTy::iterator
|
||||
I = Pos+1, E = DiagStatePoints.end(); I != E; ++I) {
|
||||
GetCurDiagState()->setMapping(Diag, Mapping);
|
||||
I->State->setMapping(Diag, Mapping);
|
||||
}
|
||||
|
||||
// If the location corresponds to an existing point, just update its state.
|
||||
if (Pos->Loc == Loc) {
|
||||
GetCurDiagState()->setMapping(Diag, Mapping);
|
||||
Pos->State->setMapping(Diag, Mapping);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -240,7 +240,7 @@ void DiagnosticsEngine::setSeverity(diag::kind Diag, diag::Severity Map,
|
|||
assert(Pos->Loc.isBeforeInTranslationUnitThan(Loc));
|
||||
DiagStates.push_back(*Pos->State);
|
||||
DiagState *NewState = &DiagStates.back();
|
||||
GetCurDiagState()->setMapping(Diag, Mapping);
|
||||
NewState->setMapping(Diag, Mapping);
|
||||
DiagStatePoints.insert(Pos+1, DiagStatePoint(NewState,
|
||||
FullSourceLoc(Loc, *SourceMgr)));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue