https://github.com/iovisor/bcc/pull/5484 diff --git a/src/cc/frontends/clang/loader.cc b/src/cc/frontends/clang/loader.cc index 6f8387a..1f70634 100644 --- a/src/cc/frontends/clang/loader.cc +++ b/src/cc/frontends/clang/loader.cc @@ -464,7 +464,10 @@ int ClangLoader::do_compile( } invocation0.getFrontendOpts().DisableFree = false; -#if LLVM_VERSION_MAJOR >= 20 +#if LLVM_VERSION_MAJOR >= 22 + compiler0.setVirtualFileSystem(llvm::vfs::getRealFileSystem()); + compiler0.createDiagnostics(new IgnoringDiagConsumer()); +#elif LLVM_VERSION_MAJOR >= 20 compiler0.createDiagnostics(*llvm::vfs::getRealFileSystem(), new IgnoringDiagConsumer()); #else compiler0.createDiagnostics(new IgnoringDiagConsumer()); @@ -487,7 +490,10 @@ int ClangLoader::do_compile( add_main_input(invocation1, main_path, &*out_buf); invocation1.getFrontendOpts().DisableFree = false; -#if LLVM_VERSION_MAJOR >= 20 +#if LLVM_VERSION_MAJOR >= 22 + compiler1.setVirtualFileSystem(llvm::vfs::getRealFileSystem()); + compiler1.createDiagnostics(); +#elif LLVM_VERSION_MAJOR >= 20 compiler1.createDiagnostics(*llvm::vfs::getRealFileSystem()); #else compiler1.createDiagnostics(); @@ -517,7 +523,10 @@ int ClangLoader::do_compile( invocation2.getCodeGenOpts().setInlining(CodeGenOptions::NormalInlining); // suppress warnings in the 2nd pass, but bail out on errors (our fault) invocation2.getDiagnosticOpts().IgnoreWarnings = true; -#if LLVM_VERSION_MAJOR >= 20 +#if LLVM_VERSION_MAJOR >= 22 + compiler2.setVirtualFileSystem(llvm::vfs::getRealFileSystem()); + compiler2.createDiagnostics(); +#elif LLVM_VERSION_MAJOR >= 20 compiler2.createDiagnostics(*llvm::vfs::getRealFileSystem()); #else compiler2.createDiagnostics();