diff options
author | Kevin Enderby <enderby@apple.com> | 2011-12-22 19:31:58 +0000 |
---|---|---|
committer | Kevin Enderby <enderby@apple.com> | 2011-12-22 19:31:58 +0000 |
commit | 567003e572eed69cf1e8a04601076c8803355c7a (patch) | |
tree | 51bf6fcb9d8baaba6aefab4c8746119715add509 /tools/driver | |
parent | cf15cef8447e8b3ae08e81ad25ae9eb443038acf (diff) |
Last part of support for generating dwarf for assembly source files. This gets
the clang driver to enable this when assembling a .s file. rdar://9275556
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147167 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/driver')
-rw-r--r-- | tools/driver/cc1as_main.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/tools/driver/cc1as_main.cpp b/tools/driver/cc1as_main.cpp index 5a175126df..9959b0d296 100644 --- a/tools/driver/cc1as_main.cpp +++ b/tools/driver/cc1as_main.cpp @@ -72,6 +72,8 @@ struct AssemblerInvocation { std::vector<std::string> IncludePaths; unsigned NoInitialTextSection : 1; unsigned SaveTemporaryLabels : 1; + unsigned GenDwarfForAssembly : 1; + std::string DwarfDebugFlags; /// @} /// @name Frontend Options @@ -158,6 +160,8 @@ void AssemblerInvocation::CreateFromArgs(AssemblerInvocation &Opts, Opts.IncludePaths = Args->getAllArgValues(OPT_I); Opts.NoInitialTextSection = Args->hasArg(OPT_n); Opts.SaveTemporaryLabels = Args->hasArg(OPT_L); + Opts.GenDwarfForAssembly = Args->hasArg(OPT_g); + Opts.DwarfDebugFlags = Args->getLastArgValue(OPT_dwarf_debug_flags); // Frontend Options if (Args->hasArg(OPT_INPUT)) { @@ -273,6 +277,10 @@ static bool ExecuteAssembler(AssemblerInvocation &Opts, Reloc::Default, CodeModel::Default, Ctx); if (Opts.SaveTemporaryLabels) Ctx.setAllowTemporaryLabels(false); + if (Opts.GenDwarfForAssembly) + Ctx.setGenDwarfForAssembly(true); + if (!Opts.DwarfDebugFlags.empty()) + Ctx.setDwarfDebugFlags(StringRef(Opts.DwarfDebugFlags)); OwningPtr<MCStreamer> Str; |