@@ -2014,16 +2014,27 @@ void AsmPrinter::Impl::printLocationInternal(LocationAttr loc, bool pretty,
20142014 os << loc.getFilename ().getValue ();
20152015 else
20162016 printEscapedString (loc.getFilename ());
2017- os << ' :' << *loc.getStartLine ();
2018- if (loc.getStartColumn ()) {
2019- os << ' :' << *loc.getStartColumn ();
2020- if (loc.getEndColumn ().has_value () || loc.getEndLine ().has_value ())
2021- os << " to " ;
2022- if (loc.getEndLine ().has_value ())
2023- os << *loc.getEndLine ();
2024- if (loc.getEndColumn ().has_value ())
2025- os << ' :' << *loc.getEndColumn ();
2017+ if (loc.getStartLine () == loc.getStartColumn () == loc.getEndLine () ==
2018+ loc.getEndColumn () == 0 ) {
2019+ return ;
2020+ }
2021+ if (loc.getStartColumn () == 0 &&
2022+ loc.getStartLine () == loc.getEndLine ()) {
2023+ os << ' :' << loc.getStartLine ();
2024+ return ;
2025+ }
2026+ if (loc.getEndColumn () == loc.getStartColumn () &&
2027+ loc.getStartLine () == loc.getEndLine ()) {
2028+ os << ' :' << loc.getStartLine () << ' :' << loc.getStartColumn ();
2029+ return ;
2030+ }
2031+ if (loc.getStartLine () == loc.getEndLine ()) {
2032+ os << ' :' << loc.getStartLine () << ' :' << loc.getStartColumn ()
2033+ << " to :" << loc.getEndColumn ();
2034+ return ;
20262035 }
2036+ os << ' :' << loc.getStartLine () << ' :' << loc.getStartColumn () << " to "
2037+ << loc.getEndLine () << ' :' << loc.getEndColumn ();
20272038 })
20282039 .Case <NameLoc>([&](NameLoc loc) {
20292040 printEscapedString (loc.getName ());
0 commit comments