diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-06-30 01:49:52 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-06-30 01:49:52 +0000 |
commit | 15d170709608e2f1efcada74c297c10c8c71fdcf (patch) | |
tree | fb8cb7f88ebf927bad158feab87b50974bbafacb /tools/llvm-mc/AsmParser.cpp | |
parent | 9b27622ecb00a4e4b23fe501d11f344c7b9ba7ed (diff) | |
download | external_llvm-15d170709608e2f1efcada74c297c10c8c71fdcf.tar.gz external_llvm-15d170709608e2f1efcada74c297c10c8c71fdcf.tar.bz2 external_llvm-15d170709608e2f1efcada74c297c10c8c71fdcf.zip |
llvm-mc: Evaluation for relocatable expressions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74496 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-mc/AsmParser.cpp')
-rw-r--r-- | tools/llvm-mc/AsmParser.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/tools/llvm-mc/AsmParser.cpp b/tools/llvm-mc/AsmParser.cpp index 9414f9918c..9330728ef6 100644 --- a/tools/llvm-mc/AsmParser.cpp +++ b/tools/llvm-mc/AsmParser.cpp @@ -153,6 +153,18 @@ bool AsmParser::ParseAbsoluteExpression(int64_t &Res) { return false; } +bool AsmParser::ParseRelocatableExpression(MCValue &Res) { + AsmExpr *Expr; + + if (ParseExpression(Expr)) + return true; + + if (!Expr->EvaluateAsRelocatable(Ctx, Res)) + return TokError("expected relocatable expression"); + + return false; +} + static unsigned getBinOpPrecedence(asmtok::TokKind K, AsmBinaryExpr::Opcode &Kind) { switch (K) { |