diff --git a/clang/test/Tooling/clang-check-fixit.cpp b/clang/test/Tooling/clang-check-fixit.cpp new file mode 100644 index 00000000000000..41a12e9a5f539b --- /dev/null +++ b/clang/test/Tooling/clang-check-fixit.cpp @@ -0,0 +1,21 @@ +// RUN: rm -rf %t +// RUN: mkdir %t +// +// RUN: sed -s 's,^//.*,//,' %s > %t/absolute-fixed.cpp +// RUN: sed -s 's,^//.*,//,' %s > %t/absolute-json.cpp +// RUN: sed -s 's,^//.*,//,' %s > %t/relative-fixed.cpp +// RUN: sed -s 's,^//.*,//,' %s > %t/relative-json.cpp +// +// RUN: clang-check %t/absolute-fixed.cpp -fixit -- 2>&1 | FileCheck %s +// +// RUN: echo "[{ \"directory\":\"%/t\", \"command\":\"/path/to/clang -c %/t/absolute-json.cpp\", \"file\": \"%/t/absolute-json.cpp\" }]" > %t/compile_commands.json +// RUN: clang-check %t/absolute-json.cpp -fixit 2>&1 | FileCheck %s +// +// RUN: cd %t +// RUN: clang-check relative-fixed.cpp -fixit -- 2>&1 | FileCheck %s +// +// RUN: echo "[{ \"directory\": \"%/t\", \"command\": \"/path/to/clang -c relative-json.cpp\", \"file\": \"relative-json.cpp\" }]" > %t/compile_commands.json +// RUN: clang-check relative-json.cpp -fixit 2>&1 | FileCheck %s +typedef int T +// CHECK: .cpp:[[@LINE-1]]:14: error: expected ';' after top level declarator +// CHECK: .cpp:[[@LINE-2]]:14: note: FIX-IT applied suggested code changes diff --git a/clang/tools/clang-check/ClangCheck.cpp b/clang/tools/clang-check/ClangCheck.cpp index 96a593a29b46f3..ce400b5c20005f 100644 --- a/clang/tools/clang-check/ClangCheck.cpp +++ b/clang/tools/clang-check/ClangCheck.cpp @@ -90,9 +90,6 @@ class FixItOptions : public clang::FixItOptions { } std::string RewriteFilename(const std::string& filename, int &fd) override { - assert(llvm::sys::path::is_absolute(filename) && - "clang-fixit expects absolute paths only."); - // We don't need to do permission checking here since clang will diagnose // any I/O errors itself.