diff options
Diffstat (limited to 'llvm/lib/VMCore')
| -rw-r--r-- | llvm/lib/VMCore/AsmWriter.cpp | 3 | ||||
| -rw-r--r-- | llvm/lib/VMCore/Instruction.cpp | 1 | ||||
| -rw-r--r-- | llvm/lib/VMCore/Instructions.cpp | 9 | ||||
| -rw-r--r-- | llvm/lib/VMCore/Linker.cpp | 2 |
4 files changed, 14 insertions, 1 deletions
diff --git a/llvm/lib/VMCore/AsmWriter.cpp b/llvm/lib/VMCore/AsmWriter.cpp index 236e243caad..2e973feb161 100644 --- a/llvm/lib/VMCore/AsmWriter.cpp +++ b/llvm/lib/VMCore/AsmWriter.cpp @@ -518,6 +518,9 @@ static void WriteConstantInt(std::ostream &Out, const Constant *CV, } else if (isa<ConstantPointerNull>(CV)) { Out << "null"; + } else if (isa<UndefValue>(CV)) { + Out << "undef"; + } else if (const ConstantExpr *CE = dyn_cast<ConstantExpr>(CV)) { Out << CE->getOpcodeName() << " ("; diff --git a/llvm/lib/VMCore/Instruction.cpp b/llvm/lib/VMCore/Instruction.cpp index 4ea5775330a..17970ac9ba9 100644 --- a/llvm/lib/VMCore/Instruction.cpp +++ b/llvm/lib/VMCore/Instruction.cpp @@ -88,6 +88,7 @@ const char *Instruction::getOpcodeName(unsigned OpCode) { case Switch: return "switch"; case Invoke: return "invoke"; case Unwind: return "unwind"; + case Unreachable: return "unreachable"; // Standard binary operators... case Add: return "add"; diff --git a/llvm/lib/VMCore/Instructions.cpp b/llvm/lib/VMCore/Instructions.cpp index 38e9255a9b3..029ee6a0f6b 100644 --- a/llvm/lib/VMCore/Instructions.cpp +++ b/llvm/lib/VMCore/Instructions.cpp @@ -249,6 +249,14 @@ void UnwindInst::setSuccessor(unsigned idx, BasicBlock *NewSucc) { } //===----------------------------------------------------------------------===// +// UnreachableInst Implementation +//===----------------------------------------------------------------------===// + +void UnreachableInst::setSuccessor(unsigned idx, BasicBlock *NewSucc) { + assert(0 && "UnreachableInst has no successors!"); +} + +//===----------------------------------------------------------------------===// // BranchInst Implementation //===----------------------------------------------------------------------===// @@ -832,3 +840,4 @@ BranchInst *BranchInst::clone() const { return new BranchInst(*this); } SwitchInst *SwitchInst::clone() const { return new SwitchInst(*this); } InvokeInst *InvokeInst::clone() const { return new InvokeInst(*this); } UnwindInst *UnwindInst::clone() const { return new UnwindInst(); } +UnreachableInst *UnreachableInst::clone() const { return new UnreachableInst();} diff --git a/llvm/lib/VMCore/Linker.cpp b/llvm/lib/VMCore/Linker.cpp index 70bd22cd444..fbf09781bae 100644 --- a/llvm/lib/VMCore/Linker.cpp +++ b/llvm/lib/VMCore/Linker.cpp @@ -310,7 +310,7 @@ static Value *RemapOperand(const Value *In, Operands[i] = cast<Constant>(RemapOperand(CPS->getOperand(i), LocalMap, GlobalMap)); Result = ConstantStruct::get(cast<StructType>(CPS->getType()), Operands); - } else if (isa<ConstantPointerNull>(CPV)) { + } else if (isa<ConstantPointerNull>(CPV) || isa<UndefValue>(CPV)) { Result = const_cast<Constant*>(CPV); } else if (isa<GlobalValue>(CPV)) { Result = cast<Constant>(RemapOperand(CPV, LocalMap, GlobalMap)); |

