diff options
author | Lukas Zaoral <lzaoral@redhat.com> | 2021-08-24 13:59:32 +0200 |
---|---|---|
committer | MartinNowack <2443641+MartinNowack@users.noreply.github.com> | 2021-12-20 14:36:51 +0000 |
commit | 49935def640a19b6dccf69c33be65d3798ea218a (patch) | |
tree | 193c54d50da8e5a39fd4082ffd6b8e1fead4eabc | |
parent | ebba5c50806d2c67a357ce8091ad861dfa0f434f (diff) | |
download | klee-49935def640a19b6dccf69c33be65d3798ea218a.tar.gz |
llvm13: CreateGEP no longer accepts nullptr
See: https://reviews.llvm.org/D105653
-rw-r--r-- | lib/Core/ExternalDispatcher.cpp | 2 | ||||
-rw-r--r-- | lib/Module/IntrinsicCleaner.cpp | 17 |
2 files changed, 10 insertions, 9 deletions
diff --git a/lib/Core/ExternalDispatcher.cpp b/lib/Core/ExternalDispatcher.cpp index b1bfff47..e43a8a83 100644 --- a/lib/Core/ExternalDispatcher.cpp +++ b/lib/Core/ExternalDispatcher.cpp @@ -303,7 +303,7 @@ Function *ExternalDispatcherImpl::createDispatcher(Function *target, auto argTy = (i < FTy->getNumParams() ? FTy->getParamType(i) : (*ai)->getType()); auto argI64p = - Builder.CreateGEP(nullptr, argI64s, + Builder.CreateGEP(argI64s->getType()->getPointerElementType(), argI64s, ConstantInt::get(Type::getInt32Ty(ctx), idx)); auto argp = Builder.CreateBitCast(argI64p, PointerType::getUnqual(argTy)); diff --git a/lib/Module/IntrinsicCleaner.cpp b/lib/Module/IntrinsicCleaner.cpp index 5e720e45..f4b867e5 100644 --- a/lib/Module/IntrinsicCleaner.cpp +++ b/lib/Module/IntrinsicCleaner.cpp @@ -106,19 +106,20 @@ bool IntrinsicCleanerPass::runOnBasicBlock(BasicBlock &b, Module &M) { auto pDst = Builder.CreatePointerCast(dst, i64p, "vacopy.cast.dst"); auto pSrc = Builder.CreatePointerCast(src, i64p, "vacopy.cast.src"); - auto pType = pSrc->getType()->getPointerElementType(); + auto pSrcType = pSrc->getType()->getPointerElementType(); + auto pDstType = pDst->getType()->getPointerElementType(); - auto val = Builder.CreateLoad(pType, pSrc); + auto val = Builder.CreateLoad(pSrcType, pSrc); Builder.CreateStore(val, pDst, ii); auto off = ConstantInt::get(Type::getInt64Ty(ctx), 1); - pDst = Builder.CreateGEP(nullptr, pDst, off, std::string()); - pSrc = Builder.CreateGEP(nullptr, pSrc, off, std::string()); - val = Builder.CreateLoad(pType, pSrc); + pDst = Builder.CreateGEP(pDstType, pDst, off); + pSrc = Builder.CreateGEP(pSrcType, pSrc, off); + val = Builder.CreateLoad(pSrcType, pSrc); Builder.CreateStore(val, pDst); - pDst = Builder.CreateGEP(nullptr, pDst, off, std::string()); - pSrc = Builder.CreateGEP(nullptr, pSrc, off, std::string()); - val = Builder.CreateLoad(pType, pSrc); + pDst = Builder.CreateGEP(pDstType, pDst, off); + pSrc = Builder.CreateGEP(pSrcType, pSrc, off); + val = Builder.CreateLoad(pSrcType, pSrc); Builder.CreateStore(val, pDst); } ii->eraseFromParent(); |