Fix a bug in the case that there is no add or subtract symbol and the offset
authorKevin Enderby <enderby@apple.com>
Wed, 27 Apr 2011 21:02:27 +0000 (21:02 +0000)
committerKevin Enderby <enderby@apple.com>
Wed, 27 Apr 2011 21:02:27 +0000 (21:02 +0000)
value is zero so it does not add a NULL expr operand.

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

lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp

index 942a74b9088555c084827c2c448837c6b8d3da7b..642829cdab095008fb6c617ad06b1f9eef953c3b 100644 (file)
@@ -3800,8 +3800,12 @@ bool ARMBasicMCBuilder::tryAddingSymbolicOperand(uint64_t Value,
       Expr = MCBinaryExpr::CreateAdd(Add, Off, *Ctx);
     else
       Expr = Add;
-  } else
-    Expr = Off;
+  } else {
+    if (Off != 0)
+      Expr = Off;
+    else
+      Expr = MCConstantExpr::Create(0, *Ctx);
+  }
 
   if (SymbolicOp.VariantKind == LLVMDisassembler_VariantKind_ARM_HI16)
     MI.addOperand(MCOperand::CreateExpr(ARMMCExpr::CreateUpper16(Expr, *Ctx)));