From 13e0fd3e1a3767c52bc4243e2132f0fd32579eed Mon Sep 17 00:00:00 2001 From: vanhauser-thc Date: Tue, 3 May 2022 13:01:48 +0200 Subject: pcguard fix for most current llvm 15 changes --- docs/Changelog.md | 1 + instrumentation/SanitizerCoveragePCGUARD.so.cc | 24 ++++++++++++++++++------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/docs/Changelog.md b/docs/Changelog.md index 7abe6743..3d6fbe7e 100644 --- a/docs/Changelog.md +++ b/docs/Changelog.md @@ -33,6 +33,7 @@ sending a mail to . - afl-cc: - converted all passed to use the new llvm pass manager for llvm 11+ - AFL++ PCGUARD mode is not available for 10.0.1 anymore (11+ only) + - trying to stay on top on all these #$&ยง!! changes in llvm 15 ... - frida_mode: - update to new frida release, handles now c++ throw/catch - unicorn_mode: diff --git a/instrumentation/SanitizerCoveragePCGUARD.so.cc b/instrumentation/SanitizerCoveragePCGUARD.so.cc index f80b1a1e..408353b3 100644 --- a/instrumentation/SanitizerCoveragePCGUARD.so.cc +++ b/instrumentation/SanitizerCoveragePCGUARD.so.cc @@ -313,13 +313,25 @@ PreservedAnalyses ModuleSanitizerCoverageAFL::run(Module & M, std::pair ModuleSanitizerCoverageAFL::CreateSecStartEnd( Module &M, const char *Section, Type *Ty) { - GlobalVariable *SecStart = new GlobalVariable( - M, Ty->getPointerElementType(), false, - GlobalVariable::ExternalWeakLinkage, nullptr, getSectionStart(Section)); + GlobalVariable *SecStart = + new GlobalVariable(M, +#if LLVM_VERSION_MAJOR >= 15 + Ty, +#else + Ty->getPointerElementType(), +#endif + false, GlobalVariable::ExternalWeakLinkage, nullptr, + getSectionStart(Section)); SecStart->setVisibility(GlobalValue::HiddenVisibility); - GlobalVariable *SecEnd = new GlobalVariable( - M, Ty->getPointerElementType(), false, - GlobalVariable::ExternalWeakLinkage, nullptr, getSectionEnd(Section)); + GlobalVariable *SecEnd = + new GlobalVariable(M, +#if LLVM_VERSION_MAJOR >= 15 + Ty, +#else + Ty->getPointerElementType(), +#endif + false, GlobalVariable::ExternalWeakLinkage, nullptr, + getSectionEnd(Section)); SecEnd->setVisibility(GlobalValue::HiddenVisibility); IRBuilder<> IRB(M.getContext()); if (!TargetTriple.isOSBinFormatCOFF()) -- cgit 1.4.1