Author: owenca Date: 2022-04-12T21:20:54-07:00 New Revision: 0cb9c6ea8398519bfb09479cc8cb29835e707440
URL: https://github.com/llvm/llvm-project/commit/0cb9c6ea8398519bfb09479cc8cb29835e707440 DIFF: https://github.com/llvm/llvm-project/commit/0cb9c6ea8398519bfb09479cc8cb29835e707440.diff LOG: [clang-format] Allow empty .clang-format file Differential Revision: https://reviews.llvm.org/D123535 Added: Modified: clang/lib/Format/Format.cpp clang/test/Format/style-on-command-line.cpp Removed: ################################################################################ diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index 0bbd54353d7b8..bce66d117dbd1 100644 --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -1722,7 +1722,7 @@ std::error_code parseConfiguration(llvm::MemoryBufferRef Config, FormatStyle::LanguageKind Language = Style->Language; assert(Language != FormatStyle::LK_None); if (Config.getBuffer().trim().empty()) - return make_error_code(ParseError::Error); + return make_error_code(ParseError::Success); Style->StyleSet.Clear(); std::vector<FormatStyle> Styles; llvm::yaml::Input Input(Config, /*Ctxt=*/nullptr, DiagHandler, diff --git a/clang/test/Format/style-on-command-line.cpp b/clang/test/Format/style-on-command-line.cpp index 3fd89f587dc6f..9825269ef0715 100644 --- a/clang/test/Format/style-on-command-line.cpp +++ b/clang/test/Format/style-on-command-line.cpp @@ -5,7 +5,7 @@ // RUN: mkdir -p %t // RUN: printf "BasedOnStyle: google\nIndentWidth: 5\n" > %t/.clang-format // RUN: clang-format -style=file -assume-filename=%t/foo.cpp < %s | FileCheck -strict-whitespace -check-prefix=CHECK5 %s -// RUN: printf "\n" > %t/.clang-format +// RUN: printf "Invalid:\n" > %t/.clang-format // RUN: not clang-format -style=file -fallback-style=webkit -assume-filename=%t/foo.cpp < %s 2>&1 | FileCheck -strict-whitespace -check-prefix=CHECK6 %s // RUN: rm %t/.clang-format // RUN: printf "BasedOnStyle: google\nIndentWidth: 6\n" > %t/_clang-format @@ -20,6 +20,13 @@ // Test yaml with no based style, and fallback style "none", LLVM formatting applied // RUN: clang-format -style="{IndentWidth: 7}" -fallback-style=none %s | FileCheck -strict-whitespace -check-prefix=CHECK11 %s +// Empty config file tests +// RUN: touch %t/.clang-format +// RUN: clang-format -style=file -assume-filename=%t/foo.cpp < %s | FileCheck -strict-whitespace -check-prefix=CHECK12 %s +// RUN: rm %t/.clang-format +// RUN: printf "\n" > %t/_clang-format +// RUN: clang-format -style=file -assume-filename=%t/foo.cpp < %s | FileCheck -strict-whitespace -check-prefix=CHECK13 %s + void f() { // CHECK1: {{^ int\* i;$}} // CHECK2: {{^ int \*i;$}} @@ -27,12 +34,15 @@ void f() { // CHECK3: Error parsing -style: [[MSG]] // CHECK4: Error parsing -style: [[MSG]] // CHECK5: {{^ int\* i;$}} +// CHECK6: unknown key 'Invalid' // CHECK6: {{^Error reading .*\.clang-format: (I|i)nvalid argument}} // CHECK7: {{^ int\* i;$}} // CHECK8: {{^ int\* i;$}} // CHECK9: {{^ int \*i;$}} // CHECK10: {{^ int \*i;$}} // CHECK11: {{^ int \*i;$}} +// CHECK12: {{^ int \*i;$}} +// CHECK13: {{^ int \*i;$}} int*i; int j; } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits