diff --git a/enzyme/Enzyme/Clang/EnzymeClang.cpp b/enzyme/Enzyme/Clang/EnzymeClang.cpp index 8891d1b75772..77fecd109c82 100644 --- a/enzyme/Enzyme/Clang/EnzymeClang.cpp +++ b/enzyme/Enzyme/Clang/EnzymeClang.cpp @@ -81,7 +81,7 @@ struct Visitor : public RecursiveASTVisitor { }; #if LLVM_VERSION_MAJOR >= 18 -void registerEnzyme(llvm::PassBuilder &PB); +extern "C" void registerEnzyme(llvm::PassBuilder &PB); #endif class EnzymePlugin final : public clang::ASTConsumer { diff --git a/enzyme/Enzyme/Enzyme.cpp b/enzyme/Enzyme/Enzyme.cpp index 9185649faac5..013d6812fcae 100644 --- a/enzyme/Enzyme/Enzyme.cpp +++ b/enzyme/Enzyme/Enzyme.cpp @@ -3658,7 +3658,7 @@ void augmentPassBuilder(llvm::PassBuilder &PB) { PB.registerFullLinkTimeOptimizationEarlyEPCallback(loadLTO); } -void registerEnzyme(llvm::PassBuilder &PB) { +extern "C" void registerEnzyme(llvm::PassBuilder &PB) { #ifdef ENZYME_RUNPASS augmentPassBuilder(PB); #endif diff --git a/enzyme/Enzyme/eopt.cpp b/enzyme/Enzyme/eopt.cpp index ab8792d34996..3d040e0ce617 100644 --- a/enzyme/Enzyme/eopt.cpp +++ b/enzyme/Enzyme/eopt.cpp @@ -5,7 +5,7 @@ using namespace llvm; -void registerEnzyme(llvm::PassBuilder &PB); +extern "C" void registerEnzyme(llvm::PassBuilder &PB); extern "C" int optMain(int argc, char **argv, llvm::ArrayRef>