diff --git a/clang_delta/CommonRenameClassRewriteVisitor.h b/clang_delta/CommonRenameClassRewriteVisitor.h index 371bebbe..94b3f6fb 100644 --- a/clang_delta/CommonRenameClassRewriteVisitor.h +++ b/clang_delta/CommonRenameClassRewriteVisitor.h @@ -310,7 +310,11 @@ template bool CommonRenameClassRewriteVisitor:: dyn_cast(Ty); TransAssert(DTST && "Bad DependentTemplateSpecializationType!"); +#if LLVM_VERSION_MAJOR >= 21 + const IdentifierInfo *IdInfo = DTST->getDependentTemplateName().getName().getIdentifier(); +#else const IdentifierInfo *IdInfo = DTST->getIdentifier(); +#endif std::string IdName = IdInfo->getName().str(); std::string Name; if (getNewNameByName(IdName, Name)) { diff --git a/clang_delta/RemoveNamespace.cpp b/clang_delta/RemoveNamespace.cpp index 0f8fc427..1d680b64 100644 --- a/clang_delta/RemoveNamespace.cpp +++ b/clang_delta/RemoveNamespace.cpp @@ -440,7 +440,11 @@ bool RemoveNamespaceRewriteVisitor::VisitDependentTemplateSpecializationTypeLoc( dyn_cast(Ty); TransAssert(DTST && "Bad DependentTemplateSpecializationType!"); +#if LLVM_VERSION_MAJOR >= 21 + const IdentifierInfo *IdInfo = DTST->getDependentTemplateName().getName().getIdentifier(); +#else const IdentifierInfo *IdInfo = DTST->getIdentifier(); +#endif std::string IdName = IdInfo->getName().str(); std::string Name; @@ -562,8 +566,10 @@ bool RemoveNamespaceRewriteVisitor::TraverseNestedNameSpecifierLoc( ND = NAD->getNamespace()->getCanonicalDecl(); break; } - case NestedNameSpecifier::TypeSpec: // Fall-through - case NestedNameSpecifier::TypeSpecWithTemplate: +#if LLVM_VERSION_MAJOR < 21 + case NestedNameSpecifier::TypeSpecWithTemplate: // Fall-through +#endif + case NestedNameSpecifier::TypeSpec: TraverseTypeLoc(Loc.getTypeLoc()); break; default: diff --git a/clang_delta/RemoveUnusedFunction.cpp b/clang_delta/RemoveUnusedFunction.cpp index f0632be5..225942ed 100644 --- a/clang_delta/RemoveUnusedFunction.cpp +++ b/clang_delta/RemoveUnusedFunction.cpp @@ -254,7 +254,11 @@ bool RUFAnalysisVisitor::VisitFunctionDecl(FunctionDecl *FD) if (FD->isReferenced() || FD->isMain() || +#if LLVM_VERSION_MAJOR >= 21 + FD->hasAttr() || +#else FD->hasAttr() || +#endif ConsumerInstance->hasReferencedSpecialization(CanonicalFD) || ConsumerInstance->isInlinedSystemFunction(CanonicalFD) || ConsumerInstance->isInReferencedSet(CanonicalFD) || diff --git a/clang_delta/RenameFun.cpp b/clang_delta/RenameFun.cpp index 8dee2431..f7c2255e 100644 --- a/clang_delta/RenameFun.cpp +++ b/clang_delta/RenameFun.cpp @@ -261,7 +261,11 @@ void RenameFun::addFun(const FunctionDecl *FD) { std::string Name = FD->getNameAsString(); // Skip special functions +#if LLVM_VERSION_MAJOR >= 21 + if (isSpecialFun(Name) || FD->hasAttr()) +#else if (isSpecialFun(Name) || FD->hasAttr()) +#endif FunToNameMap[FD] = Name; if (FunToNameMap.find(FD) != FunToNameMap.end()) diff --git a/clang_delta/Transformation.cpp b/clang_delta/Transformation.cpp index b350eec5..24765971 100644 --- a/clang_delta/Transformation.cpp +++ b/clang_delta/Transformation.cpp @@ -635,8 +635,10 @@ const DeclContext *Transformation::getDeclContextFromSpecifier( const NamespaceAliasDecl *NAD = NNS->getAsNamespaceAlias(); return NAD->getNamespace()->getCanonicalDecl(); } - case NestedNameSpecifier::TypeSpec: // Fall-through - case NestedNameSpecifier::TypeSpecWithTemplate: { +#if LLVM_VERSION_MAJOR < 21 + case NestedNameSpecifier::TypeSpecWithTemplate: // Fall-through +#endif + case NestedNameSpecifier::TypeSpec: { const Type *Ty = NNS->getAsType(); if (const RecordType *RT = Ty->getAs()) return RT->getDecl(); diff --git a/clang_delta/TransformationManager.cpp b/clang_delta/TransformationManager.cpp index 79b17cee..700c42c5 100644 --- a/clang_delta/TransformationManager.cpp +++ b/clang_delta/TransformationManager.cpp @@ -125,7 +125,7 @@ bool TransformationManager::initializeCompilerInstance(std::string &ErrorMsg) ClangInstance->createFileManager(); if(CLCPath != NULL && ClangInstance->hasFileManager() && - ClangInstance->getFileManager().getDirectory(CLCPath, false)) { + ClangInstance->getFileManager().getOptionalDirectoryRef(CLCPath, false)) { Args.push_back("-I"); Args.push_back(CLCPath); } @@ -146,8 +146,13 @@ bool TransformationManager::initializeCompilerInstance(std::string &ErrorMsg) } TargetInfo *Target = +#if LLVM_VERSION_MAJOR >= 21 + TargetInfo::CreateTargetInfo(ClangInstance->getDiagnostics(), + ClangInstance->getInvocation().getTargetOpts()); +#else TargetInfo::CreateTargetInfo(ClangInstance->getDiagnostics(), ClangInstance->getInvocation().TargetOpts); +#endif ClangInstance->setTarget(Target); if (const char *env = getenv("CREDUCE_INCLUDE_PATH")) {