aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvanhauser-thc <vh@thc.org>2022-05-03 13:01:48 +0200
committervanhauser-thc <vh@thc.org>2022-05-03 13:01:48 +0200
commit13e0fd3e1a3767c52bc4243e2132f0fd32579eed (patch)
treee188e16ded4a195034c05e018472821a4660e5bd
parent68e846785950a4c7b1b7eb6800e013568d30380d (diff)
downloadafl++-13e0fd3e1a3767c52bc4243e2132f0fd32579eed.tar.gz
pcguard fix for most current llvm 15 changes
-rw-r--r--docs/Changelog.md1
-rw-r--r--instrumentation/SanitizerCoveragePCGUARD.so.cc24
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())