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 | bd4bf3d4f794561f5869f33f574b6ddc4fe336bf (patch) | |
| tree | caaa9425ec4a186a0347b855f82d5855d4a9fe5c /llvm/tools/llvm-mc/AsmParser.cpp | |
| parent | 7013ca5434416861eab0f04038087bbe2daa7f77 (diff) | |
| download | bcm5719-llvm-bd4bf3d4f794561f5869f33f574b6ddc4fe336bf.tar.gz bcm5719-llvm-bd4bf3d4f794561f5869f33f574b6ddc4fe336bf.zip | |
llvm-mc: Evaluation for relocatable expressions.
llvm-svn: 74496
Diffstat (limited to 'llvm/tools/llvm-mc/AsmParser.cpp')
| -rw-r--r-- | llvm/tools/llvm-mc/AsmParser.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/tools/llvm-mc/AsmParser.cpp b/llvm/tools/llvm-mc/AsmParser.cpp index 9414f9918c6..9330728ef62 100644 --- a/llvm/tools/llvm-mc/AsmParser.cpp +++ b/llvm/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) { |

