Skip to content

Commit 3e8f0b2

Browse files
committed
[Diagnostics] Fix a crash in the "swift" diagnostic printing style.
When there are no excerpts, we should assume indentation of zero.
1 parent 456fbf8 commit 3e8f0b2

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

lib/Frontend/PrintingDiagnosticConsumer.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -861,13 +861,14 @@ class AnnotatedSourceSnippet {
861861

862862
void render(raw_ostream &Out) {
863863
// Print the excerpt for each file.
864-
unsigned lineNumberIndent =
865-
std::max_element(FileExcerpts.begin(), FileExcerpts.end(),
866-
[](auto &a, auto &b) {
867-
return a.second.getPreferredLineNumberIndent() <
868-
b.second.getPreferredLineNumberIndent();
869-
})
870-
->second.getPreferredLineNumberIndent();
864+
unsigned lineNumberIndent = 0;
865+
if (!FileExcerpts.empty()) {
866+
lineNumberIndent = std::max_element(FileExcerpts.begin(), FileExcerpts.end(),
867+
[](auto &a, auto &b) {
868+
return a.second.getPreferredLineNumberIndent() <
869+
b.second.getPreferredLineNumberIndent();
870+
})->second.getPreferredLineNumberIndent();
871+
}
871872
for (auto excerpt : FileExcerpts)
872873
excerpt.second.render(lineNumberIndent, Out);
873874

0 commit comments

Comments
 (0)