diff options
author | Mandeep Singh Grang <mgrang@codeaurora.org> | 2016-12-01 18:42:16 +0000 |
---|---|---|
committer | Mandeep Singh Grang <mgrang@codeaurora.org> | 2016-12-01 18:42:16 +0000 |
commit | e87474216cbfece502cdfb7d9174a3439203a760 (patch) | |
tree | 0c0a14d3711c7dfa9b9a044b122fb22090fa8c9a /tools | |
parent | 5af66e97a414a1975bd277905c4b98fe74a345ce (diff) |
[clang] Implement support for -defsym assembler option
Summary:
Adds support for -Wa,-defsym,abc=1 option.
Related llvm patch: https://reviews.llvm.org/D26214
Reviewers: rafael, t.p.northover, colinl, echristo, compnerd, rengolin
Subscribers: mehdi_amini
Tags: #clang-c
Differential Revision: https://reviews.llvm.org/D26213
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@288397 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools')
-rw-r--r-- | tools/driver/cc1as_main.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/tools/driver/cc1as_main.cpp b/tools/driver/cc1as_main.cpp index 6b818a94d5..c9361541cd 100644 --- a/tools/driver/cc1as_main.cpp +++ b/tools/driver/cc1as_main.cpp @@ -77,6 +77,9 @@ struct AssemblerInvocation { /// be a list of strings starting with '+' or '-'. std::vector<std::string> Features; + /// The list of symbol definitions. + std::vector<std::string> SymbolDefs; + /// @} /// @name Language Options /// @{ @@ -252,6 +255,7 @@ bool AssemblerInvocation::CreateFromArgs(AssemblerInvocation &Opts, Opts.RelocationModel = Args.getLastArgValue(OPT_mrelocation_model, "pic"); Opts.IncrementalLinkerCompatible = Args.hasArg(OPT_mincremental_linker_compatible); + Opts.SymbolDefs = Args.getAllArgValues(OPT_defsym); return Success; } @@ -420,6 +424,14 @@ static bool ExecuteAssembler(AssemblerInvocation &Opts, if (!TAP) Failed = Diags.Report(diag::err_target_unknown_triple) << Opts.Triple; + // Set values for symbols, if any. + for (auto &S : Opts.SymbolDefs) { + if (Ctx.setSymbolValue(Parser->getStreamer(), S)) { + Failed = true; + break; + } + } + if (!Failed) { Parser->setTargetParser(*TAP.get()); Failed = Parser->Run(Opts.NoInitialTextSection); |