Fixed llvm-mc in edis mode to use the result of
authorSean Callanan <scallanan@apple.com>
Tue, 22 Feb 2011 02:09:15 +0000 (02:09 +0000)
committerSean Callanan <scallanan@apple.com>
Tue, 22 Feb 2011 02:09:15 +0000 (02:09 +0000)
operand.evaluate as an error code, not as the
contents of the operand.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126181 91177308-0d34-0410-b5e6-96231b3b80d8

tools/llvm-mc/Disassembler.cpp

index c29d82a2cb38426368d14ab057068d70bdb09a7c..d76c36155fe51db6ee8aef12d82a5afed7cdf618 100644 (file)
@@ -328,7 +328,10 @@ int Disassembler::disassembleEnhanced(const std::string &TS,
     
     uint64_t evaluatedResult;
     void *Arg[] = { disassembler, &Out };
-    evaluatedResult = operand->evaluate(evaluatedResult, verboseEvaluator, Arg);
+    if (operand->evaluate(evaluatedResult, verboseEvaluator, Arg)) {
+      errs() << "error: Couldn't evaluate an operand\n";
+      return -1;
+    }
     Out << "=" << evaluatedResult << " ";
   }