diff --git a/llvm/include/llvm/IR/Instructions.h b/llvm/include/llvm/IR/Instructions.h --- a/llvm/include/llvm/IR/Instructions.h +++ b/llvm/include/llvm/IR/Instructions.h @@ -956,13 +956,9 @@ const Twine &NameStr = "", Instruction *InsertBefore = nullptr) { unsigned Values = 1 + unsigned(IdxList.size()); - if (!PointeeType) { - PointeeType = - cast(Ptr->getType()->getScalarType())->getElementType(); - } else { - assert(cast(Ptr->getType()->getScalarType()) - ->isOpaqueOrPointeeTypeMatches(PointeeType)); - } + assert(PointeeType && "Must specify element type"); + assert(cast(Ptr->getType()->getScalarType()) + ->isOpaqueOrPointeeTypeMatches(PointeeType)); return new (Values) GetElementPtrInst(PointeeType, Ptr, IdxList, Values, NameStr, InsertBefore); } @@ -972,13 +968,9 @@ const Twine &NameStr, BasicBlock *InsertAtEnd) { unsigned Values = 1 + unsigned(IdxList.size()); - if (!PointeeType) { - PointeeType = - cast(Ptr->getType()->getScalarType())->getElementType(); - } else { - assert(cast(Ptr->getType()->getScalarType()) - ->isOpaqueOrPointeeTypeMatches(PointeeType)); - } + assert(PointeeType && "Must specify element type"); + assert(cast(Ptr->getType()->getScalarType()) + ->isOpaqueOrPointeeTypeMatches(PointeeType)); return new (Values) GetElementPtrInst(PointeeType, Ptr, IdxList, Values, NameStr, InsertAtEnd); }