summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/test/Tooling/clang-check-fixit.cpp21
-rw-r--r--clang/tools/clang-check/ClangCheck.cpp3
2 files changed, 21 insertions, 3 deletions
diff --git a/clang/test/Tooling/clang-check-fixit.cpp b/clang/test/Tooling/clang-check-fixit.cpp
new file mode 100644
index 00000000000..41a12e9a5f5
--- /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 96a593a29b4..ce400b5c200 100644
--- a/clang/tools/clang-check/ClangCheck.cpp
+++ b/clang/tools/clang-check/ClangCheck.cpp
@@ -90,9 +90,6 @@ public:
}
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.
OpenPOWER on IntegriCloud