diff --git a/clang/test/Tooling/clang-check-fixit.cpp b/clang/test/Tooling/clang-check-fixit.cpp new file mode 100644 index 0000000000000..6b03334f72cd2 --- /dev/null +++ b/clang/test/Tooling/clang-check-fixit.cpp @@ -0,0 +1,25 @@ +// 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", \ +// RUN: "command": "/path/to/clang -c %t/absolute-json.cpp", \ +// RUN: "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", \ +// RUN: "command": "/path/to/clang -c relative-json.cpp", \ +// RUN: "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 96a593a29b46f..ce400b5c20005 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.