diff options
author | vanhauser-thc <vh@thc.org> | 2022-05-03 13:01:48 +0200 |
---|---|---|
committer | vanhauser-thc <vh@thc.org> | 2022-05-03 13:01:48 +0200 |
commit | 13e0fd3e1a3767c52bc4243e2132f0fd32579eed (patch) | |
tree | e188e16ded4a195034c05e018472821a4660e5bd | |
parent | 68e846785950a4c7b1b7eb6800e013568d30380d (diff) | |
download | afl++-13e0fd3e1a3767c52bc4243e2132f0fd32579eed.tar.gz |
pcguard fix for most current llvm 15 changes
-rw-r--r-- | docs/Changelog.md | 1 | ||||
-rw-r--r-- | 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-users+subscribe@googlegroups.com>. - 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<Value *, Value *> 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()) |