diff options
author | Mandeep Singh Grang <mgrang@codeaurora.org> | 2016-12-06 02:49:17 +0000 |
---|---|---|
committer | Mandeep Singh Grang <mgrang@codeaurora.org> | 2016-12-06 02:49:17 +0000 |
commit | 9196899788634a664fe6c5ff0285decce74326de (patch) | |
tree | 7a25ecd4f2ad56a73cb251770d271f666021fe51 /tools/llvm-mc | |
parent | d37747e061dcd4cd71c54934c39170832a547837 (diff) |
[llvm] Fix D26214: Move error handling out of MC and to the callers.
Summary: Related clang patch; https://reviews.llvm.org/D27360
Reviewers: t.p.northover, grosbach, compnerd, echristo
Subscribers: compnerd, mehdi_amini, llvm-commits
Differential Revision: https://reviews.llvm.org/D27359
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@288763 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-mc')
-rw-r--r-- | tools/llvm-mc/llvm-mc.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/tools/llvm-mc/llvm-mc.cpp b/tools/llvm-mc/llvm-mc.cpp index 8a904a8ad7c..497fb198776 100644 --- a/tools/llvm-mc/llvm-mc.cpp +++ b/tools/llvm-mc/llvm-mc.cpp @@ -394,9 +394,22 @@ static int AsLexInput(SourceMgr &SrcMgr, MCAsmInfo &MAI, } static int fillCommandLineSymbols(MCAsmParser &Parser) { - for (auto &I: DefineSymbol) - if (Parser.getContext().setSymbolValue(Parser.getStreamer(), I)) + for (auto &I: DefineSymbol) { + auto Pair = StringRef(I).split('='); + auto Sym = Pair.first; + auto Val = Pair.second; + + if (Sym.empty() || Val.empty()) { + errs() << "error: defsym must be of the form: sym=value: " << I << "\n"; + return 1; + } + int64_t Value; + if (Val.getAsInteger(0, Value)) { + errs() << "error: Value is not an integer: " << Val << "\n"; return 1; + } + Parser.getContext().setSymbolValue(Parser.getStreamer(), Sym, Value); + } return 0; } |