Index: lib/Format/AffectedRangeManager.h =================================================================== --- lib/Format/AffectedRangeManager.h +++ lib/Format/AffectedRangeManager.h @@ -54,7 +54,7 @@ // Determines whether 'Line' is affected by the SourceRanges given as input. // Returns \c true if line or one if its children is affected. - bool nonPPLineAffected(AnnotatedLine *Line, + bool nonPPLineAffected(AnnotatedLine &Line, const AnnotatedLine *PreviousLine); const SourceManager &SourceMgr; Index: lib/Format/AffectedRangeManager.cpp =================================================================== --- lib/Format/AffectedRangeManager.cpp +++ lib/Format/AffectedRangeManager.cpp @@ -48,7 +48,7 @@ continue; } - if (nonPPLineAffected(Line, PreviousLine)) + if (nonPPLineAffected(*Line, PreviousLine)) SomeLineAffected = true; PreviousLine = Line; @@ -99,15 +99,13 @@ } bool AffectedRangeManager::nonPPLineAffected( - AnnotatedLine *Line, const AnnotatedLine *PreviousLine) { + AnnotatedLine &Line, const AnnotatedLine *PreviousLine) { bool SomeLineAffected = false; - Line->ChildrenAffected = - computeAffectedLines(Line->Children.begin(), Line->Children.end()); - if (Line->ChildrenAffected) + Line.ChildrenAffected = + computeAffectedLines(Line.Children.begin(), Line.Children.end()); + if (Line.ChildrenAffected) SomeLineAffected = true; - // Stores whether one of the line's tokens is directly affected. - bool SomeTokenAffected = false; // Stores whether we need to look at the leading newlines of the next token // in order to determine whether it was affected. bool IncludeLeadingNewlines = false; @@ -116,7 +114,12 @@ // affected. bool SomeFirstChildAffected = false; - for (FormatToken *Tok = Line->First; Tok; Tok = Tok->Next) { + // Stores whether one of the line's tokens is directly affected. + bool SomeTokenAffected = false; + if (Line.First == nullptr) + return SomeTokenAffected; + + for (FormatToken *Tok = Line.First; Tok; Tok = Tok->Next) { // Determine whether 'Tok' was affected. if (affectsTokenRange(*Tok, *Tok, IncludeLeadingNewlines)) SomeTokenAffected = true; @@ -131,16 +134,16 @@ // Was this line moved, i.e. has it previously been on the same line as an // affected line? bool LineMoved = PreviousLine && PreviousLine->Affected && - Line->First->NewlinesBefore == 0; + Line.First->NewlinesBefore == 0; bool IsContinuedComment = - Line->First->is(tok::comment) && Line->First->Next == nullptr && - Line->First->NewlinesBefore < 2 && PreviousLine && + Line.First->is(tok::comment) && Line.First->Next == nullptr && + Line.First->NewlinesBefore < 2 && PreviousLine && PreviousLine->Affected && PreviousLine->Last->is(tok::comment); if (SomeTokenAffected || SomeFirstChildAffected || LineMoved || IsContinuedComment) { - Line->Affected = true; + Line.Affected = true; SomeLineAffected = true; } return SomeLineAffected;