diff options
author | Saleem Abdulrasool <compnerd@compnerd.org> | 2016-09-26 04:48:22 +0000 |
---|---|---|
committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2016-09-26 04:48:22 +0000 |
commit | c094131557762e916d8e3d66f3982edb6c4ae0a4 (patch) | |
tree | bb901529d0d03de61b9281cf1e91783ee4550251 | |
parent | e35f84a2f0b0c3029827eaf1faac8dc12b7163c9 (diff) | |
download | bcm5719-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.cpp | 11 | ||||
-rw-r--r-- | clang/test/Driver/Inputs/rewrite-1.map | 0 | ||||
-rw-r--r-- | clang/test/Driver/Inputs/rewrite-2.map | 0 | ||||
-rw-r--r-- | clang/test/Driver/Inputs/rewrite.map | 0 | ||||
-rw-r--r-- | clang/test/Driver/rewrite-map-files.c | 2 |
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: |