diff options
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp | 4 | 
1 files changed, 3 insertions, 1 deletions
| diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp index d53f3291e71..58c8f5fc460 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp @@ -234,7 +234,9 @@ Instruction *InstCombiner::SimplifyMemSet(MemSetInst *MI) {      const Type *ITy = IntegerType::get(MI->getContext(), Len*8);  // n=1 -> i8.      Value *Dest = MI->getDest(); -    Dest = Builder->CreateBitCast(Dest, PointerType::getUnqual(ITy)); +    unsigned DstAddrSp = cast<PointerType>(Dest->getType())->getAddressSpace(); +    Type *NewDstPtrTy = PointerType::get(ITy, DstAddrSp); +    Dest = Builder->CreateBitCast(Dest, NewDstPtrTy);      // Alignment 0 is identity for alignment 1 for memset, but not store.      if (Alignment == 0) Alignment = 1; | 

