diff --git a/clang/test/Format/clang-format-ignore.cpp b/clang/test/Format/clang-format-ignore.cpp index fb49fa9dd52c6..67d68aebde5d0 100644 --- a/clang/test/Format/clang-format-ignore.cpp +++ b/clang/test/Format/clang-format-ignore.cpp @@ -46,5 +46,15 @@ // CHECK5-NEXT: {{Formatting \[4/5] .*foo\.c}} // CHECK5-NOT: foo.js +// RUN: echo "foo.*" > .clang-format-ignore +// RUN: echo "int i ;" > foo.c +// RUN: clang-format -assume-filename=foo.c < foo.c \ +// RUN: | FileCheck %s -check-prefix=CHECK6 -allow-empty +// CHECK6-NOT: int + +// RUN: clang-format -assume-filename=bar.c < foo.c \ +// RUN: | FileCheck %s -check-prefix=CHECK7 -match-full-lines +// CHECK7: int i; + // RUN: cd .. // RUN: rm -r %t.dir diff --git a/clang/tools/clang-format/ClangFormat.cpp b/clang/tools/clang-format/ClangFormat.cpp index 108db7204aa68..96fb85e99bf5f 100644 --- a/clang/tools/clang-format/ClangFormat.cpp +++ b/clang/tools/clang-format/ClangFormat.cpp @@ -707,8 +707,11 @@ int main(int argc, const char **argv) { errs() << "Clang-formatting " << LineNo << " files\n"; } - if (FileNames.empty()) + if (FileNames.empty()) { + if (isIgnored(AssumeFileName)) + return 0; return clang::format::format("-", FailOnIncompleteFormat); + } if (FileNames.size() > 1 && (!Offsets.empty() || !Lengths.empty() || !LineRanges.empty())) {