summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2016-09-26 04:48:22 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2016-09-26 04:48:22 +0000
commitc094131557762e916d8e3d66f3982edb6c4ae0a4 (patch)
treebb901529d0d03de61b9281cf1e91783ee4550251
parente35f84a2f0b0c3029827eaf1faac8dc12b7163c9 (diff)
downloadbcm5719-llvm-c094131557762e916d8e3d66f3982edb6c4ae0a4.tar.gz
bcm5719-llvm-c094131557762e916d8e3d66f3982edb6c4ae0a4.zip
Driver: avoid failing in the backend
Avoid failing in the backend when the rewrite map does not exist. Rather check that the map exists in the frontend before handing it off to the backend. Add the missing rewrite maps that the tests were referencing. llvm-svn: 282379
-rw-r--r--clang/lib/Driver/Tools.cpp11
-rw-r--r--clang/test/Driver/Inputs/rewrite-1.map0
-rw-r--r--clang/test/Driver/Inputs/rewrite-2.map0
-rw-r--r--clang/test/Driver/Inputs/rewrite.map0
-rw-r--r--clang/test/Driver/rewrite-map-files.c2
5 files changed, 10 insertions, 3 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 7d1e0d091aa..dcdc92a1305 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -4213,9 +4213,14 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
Args.hasArg(options::OPT_frewrite_map_file_EQ)) {
for (const Arg *A : Args.filtered(options::OPT_frewrite_map_file,
options::OPT_frewrite_map_file_EQ)) {
- CmdArgs.push_back("-frewrite-map-file");
- CmdArgs.push_back(A->getValue());
- A->claim();
+ StringRef Map = A->getValue();
+ if (!llvm::sys::fs::exists(Map)) {
+ D.Diag(diag::err_drv_no_such_file) << Map;
+ } else {
+ CmdArgs.push_back("-frewrite-map-file");
+ CmdArgs.push_back(A->getValue());
+ A->claim();
+ }
}
}
diff --git a/clang/test/Driver/Inputs/rewrite-1.map b/clang/test/Driver/Inputs/rewrite-1.map
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/clang/test/Driver/Inputs/rewrite-1.map
diff --git a/clang/test/Driver/Inputs/rewrite-2.map b/clang/test/Driver/Inputs/rewrite-2.map
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/clang/test/Driver/Inputs/rewrite-2.map
diff --git a/clang/test/Driver/Inputs/rewrite.map b/clang/test/Driver/Inputs/rewrite.map
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/clang/test/Driver/Inputs/rewrite.map
diff --git a/clang/test/Driver/rewrite-map-files.c b/clang/test/Driver/rewrite-map-files.c
new file mode 100644
index 00000000000..fe04fbaa1f4
--- /dev/null
+++ b/clang/test/Driver/rewrite-map-files.c
@@ -0,0 +1,2 @@
+// RUN: %clang -### -frewrite-map-file %t.map -c %s -o /dev/null 2>&1 | FileCheck %s
+// CHECK: error: no such file or directory:
OpenPOWER on IntegriCloud