summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/ToolChains/Gnu.cpp
diff options
context:
space:
mode:
authorDan McGregor <dan.mcgregor@usask.ca>2019-11-26 14:23:07 -0800
committerFangrui Song <maskray@google.com>2019-11-26 15:17:49 -0800
commit6c92cdff72251a7d13ab3958b04fba72dfcaebb1 (patch)
tree109f389b97c23284a0af76927c7f1650f1fb9787 /clang/lib/Driver/ToolChains/Gnu.cpp
parente177c5a00da34ba61b762e2b32bd96e33b0c10b4 (diff)
downloadbcm5719-llvm-6c92cdff72251a7d13ab3958b04fba72dfcaebb1.tar.gz
bcm5719-llvm-6c92cdff72251a7d13ab3958b04fba72dfcaebb1.zip
Initial implementation of -fmacro-prefix-map and -ffile-prefix-map
GCC 8 implements -fmacro-prefix-map. Like -fdebug-prefix-map, it replaces a string prefix for the __FILE__ macro. -ffile-prefix-map is the union of -fdebug-prefix-map and -fmacro-prefix-map Reviewed By: rnk, Lekensteyn, maskray Differential Revision: https://reviews.llvm.org/D49466
Diffstat (limited to 'clang/lib/Driver/ToolChains/Gnu.cpp')
-rw-r--r--clang/lib/Driver/ToolChains/Gnu.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
index 4c6956d54b7..1a729f112bd 100644
--- a/clang/lib/Driver/ToolChains/Gnu.cpp
+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
@@ -868,6 +868,19 @@ void tools::gnutools::Assembler::ConstructJob(Compilation &C,
}
}
+ for (const Arg *A : Args.filtered(options::OPT_ffile_prefix_map_EQ,
+ options::OPT_fdebug_prefix_map_EQ)) {
+ StringRef Map = A->getValue();
+ if (Map.find('=') == StringRef::npos)
+ D.Diag(diag::err_drv_invalid_argument_to_option)
+ << Map << A->getOption().getName();
+ else {
+ CmdArgs.push_back(Args.MakeArgString("--debug-prefix-map"));
+ CmdArgs.push_back(Args.MakeArgString(Map));
+ }
+ A->claim();
+ }
+
Args.AddAllArgs(CmdArgs, options::OPT_I);
Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler);
OpenPOWER on IntegriCloud