Author: owenca Date: 2022-07-08T23:41:16-07:00 New Revision: 615f838f7380e6a4f3df8e16f04dea3c8eed656c
URL: https://github.com/llvm/llvm-project/commit/615f838f7380e6a4f3df8e16f04dea3c8eed656c DIFF: https://github.com/llvm/llvm-project/commit/615f838f7380e6a4f3df8e16f04dea3c8eed656c.diff LOG: [clang-format] Fix an assertion failure on -lines=0:n Also fixed the error message for start line > end line and added test cases. Fixes #56438. Differential Revision: https://reviews.llvm.org/D129348 Added: Modified: clang/test/Format/line-ranges.cpp clang/tools/clang-format/ClangFormat.cpp Removed: ################################################################################ diff --git a/clang/test/Format/line-ranges.cpp b/clang/test/Format/line-ranges.cpp index e81e9624344d0..91b7d2cffc8f0 100644 --- a/clang/test/Format/line-ranges.cpp +++ b/clang/test/Format/line-ranges.cpp @@ -9,3 +9,11 @@ int * i; // CHECK: {{^int\ \*i;$}} int * i; + +// RUN: not clang-format -lines=0:1 < %s 2>&1 \ +// RUN: | FileCheck -strict-whitespace -check-prefix=CHECK0 %s +// CHECK0: error: start line should be at least 1 + +// RUN: not clang-format -lines=2:1 < %s 2>&1 \ +// RUN: | FileCheck -strict-whitespace -check-prefix=CHECK1 %s +// CHECK1: error: start line should not exceed end line diff --git a/clang/tools/clang-format/ClangFormat.cpp b/clang/tools/clang-format/ClangFormat.cpp index 946ba131f6dc9..269bc59506b2d 100644 --- a/clang/tools/clang-format/ClangFormat.cpp +++ b/clang/tools/clang-format/ClangFormat.cpp @@ -246,8 +246,12 @@ static bool fillRanges(MemoryBuffer *Code, errs() << "error: invalid <start line>:<end line> pair\n"; return true; } + if (FromLine < 1) { + errs() << "error: start line should be at least 1\n"; + return true; + } if (FromLine > ToLine) { - errs() << "error: start line should be less than end line\n"; + errs() << "error: start line should not exceed end line\n"; return true; } SourceLocation Start = Sources.translateLineCol(ID, FromLine, 1); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits