瀏覽代碼

Pointer comparisons should be handled by icmp, not vicmp :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50994 91177308-0d34-0410-b5e6-96231b3b80d8
Nate Begeman 17 年之前
父節點
當前提交
c83ad0d8e7
共有 2 個文件被更改,包括 3 次插入3 次删除
  1. 1 1
      lib/Bitcode/Reader/BitcodeReader.cpp
  2. 2 2
      lib/VMCore/Instructions.cpp

+ 1 - 1
lib/Bitcode/Reader/BitcodeReader.cpp

@@ -1359,7 +1359,7 @@ bool BitcodeReader::ParseFunctionBody(Function *F) {
           OpNum+1 != Record.size())
         return Error("Invalid CMP record");
       
-      if (LHS->getType()->isInteger())
+      if (LHS->getType()->isInteger() || isa<PointerType>(LHS->getType()))
         I = new ICmpInst((ICmpInst::Predicate)Record[OpNum], LHS, RHS);
       else if (LHS->getType()->isFloatingPoint())
         I = new FCmpInst((FCmpInst::Predicate)Record[OpNum], LHS, RHS);

+ 2 - 2
lib/VMCore/Instructions.cpp

@@ -2335,7 +2335,7 @@ BitCastInst::BitCastInst(
 CmpInst::CmpInst(const Type *ty, OtherOps op, unsigned short predicate,
                  Value *LHS, Value *RHS, const std::string &Name,
                  Instruction *InsertBefore)
-  : Instruction(Type::Int1Ty, op,
+  : Instruction(ty, op,
                 OperandTraits<CmpInst>::op_begin(this),
                 OperandTraits<CmpInst>::operands(this),
                 InsertBefore) {
@@ -2348,7 +2348,7 @@ CmpInst::CmpInst(const Type *ty, OtherOps op, unsigned short predicate,
 CmpInst::CmpInst(const Type *ty, OtherOps op, unsigned short predicate,
                  Value *LHS, Value *RHS, const std::string &Name,
                  BasicBlock *InsertAtEnd)
-  : Instruction(Type::Int1Ty, op,
+  : Instruction(ty, op,
                 OperandTraits<CmpInst>::op_begin(this),
                 OperandTraits<CmpInst>::operands(this),
                 InsertAtEnd) {