summaryrefslogtreecommitdiffstats
path: root/clang/tools/driver/cc1as_main.cpp
diff options
context:
space:
mode:
authorEric Christopher <echristo@gmail.com>2012-12-18 00:31:10 +0000
committerEric Christopher <echristo@gmail.com>2012-12-18 00:31:10 +0000
commit45f2e71571570d46328e91953183de2795bc5c56 (patch)
treea69295c9a6ac57436ea89a1329a0de820b1a3dfb /clang/tools/driver/cc1as_main.cpp
parent906da23229af3e8f11694f6feb125682f02c93dc (diff)
downloadbcm5719-llvm-45f2e71571570d46328e91953183de2795bc5c56.tar.gz
bcm5719-llvm-45f2e71571570d46328e91953183de2795bc5c56.zip
Add support for passing the main file name down to the assembler
for location information. Part of PR14624 llvm-svn: 170391
Diffstat (limited to 'clang/tools/driver/cc1as_main.cpp')
-rw-r--r--clang/tools/driver/cc1as_main.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/tools/driver/cc1as_main.cpp b/clang/tools/driver/cc1as_main.cpp
index 73be56c2b4c..f01d97d1c5b 100644
--- a/clang/tools/driver/cc1as_main.cpp
+++ b/clang/tools/driver/cc1as_main.cpp
@@ -84,6 +84,7 @@ struct AssemblerInvocation {
unsigned GenDwarfForAssembly : 1;
std::string DwarfDebugFlags;
std::string DebugCompilationDir;
+ std::string MainFileName;
/// @}
/// @name Frontend Options
@@ -183,6 +184,7 @@ bool AssemblerInvocation::CreateFromArgs(AssemblerInvocation &Opts,
Opts.GenDwarfForAssembly = Args->hasArg(OPT_g);
Opts.DwarfDebugFlags = Args->getLastArgValue(OPT_dwarf_debug_flags);
Opts.DebugCompilationDir = Args->getLastArgValue(OPT_fdebug_compilation_dir);
+ Opts.MainFileName = Args->getLastArgValue(OPT_main_file_name);
// Frontend Options
if (Args->hasArg(OPT_INPUT)) {
@@ -309,6 +311,8 @@ static bool ExecuteAssembler(AssemblerInvocation &Opts,
Ctx.setDwarfDebugFlags(StringRef(Opts.DwarfDebugFlags));
if (!Opts.DebugCompilationDir.empty())
Ctx.setCompilationDir(Opts.DebugCompilationDir);
+ if (!Opts.MainFileName.empty())
+ Ctx.setMainFileName(StringRef(Opts.MainFileName));
// Build up the feature string from the target feature list.
std::string FS;
OpenPOWER on IntegriCloud