diff options
Diffstat (limited to 'llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp')
| -rw-r--r-- | llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp b/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp index 5ba2167..cc53ec2 100644 --- a/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp +++ b/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp @@ -1957,8 +1957,12 @@ Value *DataFlowSanitizer::getShadowAddress(Value *Addr,  Value *DataFlowSanitizer::getShadowAddress(Value *Addr,                                             BasicBlock::iterator Pos) {    IRBuilder<> IRB(Pos->getParent(), Pos); -  Value *ShadowOffset = getShadowOffset(Addr, IRB); -  return getShadowAddress(Addr, Pos, ShadowOffset); +  Value *ShadowAddr = getShadowOffset(Addr, IRB); +  uint64_t ShadowBase = MapParams->ShadowBase; +  if (ShadowBase != 0) +    ShadowAddr = +        IRB.CreateAdd(ShadowAddr, ConstantInt::get(IntptrTy, ShadowBase)); +  return getShadowAddress(Addr, Pos, ShadowAddr);  }  Value *DFSanFunction::combineShadowsThenConvert(Type *T, Value *V1, Value *V2, | 
