1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
diff --git a/clang_delta/CommonRenameClassRewriteVisitor.h b/clang_delta/CommonRenameClassRewriteVisitor.h
index b758df79c..598493b10 100644
--- a/clang_delta/CommonRenameClassRewriteVisitor.h
+++ b/clang_delta/CommonRenameClassRewriteVisitor.h
@@ -368,7 +368,12 @@ template<typename T> bool CommonRenameClassRewriteVisitor<T>::
dyn_cast<DependentTemplateSpecializationType>(Ty);
TransAssert(DTST && "Bad DependentTemplateSpecializationType!");
- const IdentifierInfo *IdInfo = DTST->getIdentifier();
+ const IdentifierInfo *IdInfo =
+#if LLVM_VERSION_MAJOR > 20
+ DTST->getDependentTemplateName().getName().getIdentifier();
+#else
+ 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 20d234eec..ba816b074 100644
--- a/clang_delta/RemoveNamespace.cpp
+++ b/clang_delta/RemoveNamespace.cpp
@@ -440,7 +440,12 @@ bool RemoveNamespaceRewriteVisitor::VisitDependentTemplateSpecializationTypeLoc(
dyn_cast<DependentTemplateSpecializationType>(Ty);
TransAssert(DTST && "Bad DependentTemplateSpecializationType!");
- const IdentifierInfo *IdInfo = DTST->getIdentifier();
+ const IdentifierInfo *IdInfo =
+#if LLVM_VERSION_MAJOR > 20
+ DTST->getDependentTemplateName().getName().getIdentifier();
+#else
+ DTST->getIdentifier();
+#endif
std::string IdName = IdInfo->getName().str();
std::string Name;
@@ -563,7 +568,9 @@ bool RemoveNamespaceRewriteVisitor::TraverseNestedNameSpecifierLoc(
break;
}
case NestedNameSpecifier::TypeSpec: // Fall-through
+#if LLVM_VERSION_MAJOR <= 20
case NestedNameSpecifier::TypeSpecWithTemplate:
+#endif
TraverseTypeLoc(Loc.getTypeLoc());
break;
default:
diff --git a/clang_delta/RemoveUnusedFunction.cpp b/clang_delta/RemoveUnusedFunction.cpp
index ca9d3f7bc..9b0c96511 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 > 20
+ FD->hasAttr<DeviceKernelAttr>() ||
+#else
FD->hasAttr<OpenCLKernelAttr>() ||
+#endif
ConsumerInstance->hasReferencedSpecialization(CanonicalFD) ||
ConsumerInstance->isInlinedSystemFunction(CanonicalFD) ||
ConsumerInstance->isInReferencedSet(CanonicalFD) ||
diff --git a/clang_delta/RenameFun.cpp b/clang_delta/RenameFun.cpp
index 8dee24316..2a4b0ae62 100644
--- a/clang_delta/RenameFun.cpp
+++ b/clang_delta/RenameFun.cpp
@@ -261,7 +261,13 @@ void RenameFun::addFun(const FunctionDecl *FD)
{
std::string Name = FD->getNameAsString();
// Skip special functions
- if (isSpecialFun(Name) || FD->hasAttr<OpenCLKernelAttr>())
+ if (isSpecialFun(Name) ||
+#if LLVM_VERSION_MAJOR > 20
+ FD->hasAttr<DeviceKernelAttr>()
+#else
+ FD->hasAttr<OpenCLKernelAttr>()
+#endif
+ )
FunToNameMap[FD] = Name;
if (FunToNameMap.find(FD) != FunToNameMap.end())
diff --git a/clang_delta/Transformation.cpp b/clang_delta/Transformation.cpp
index d4896cb9b..0da9827ac 100644
--- a/clang_delta/Transformation.cpp
+++ b/clang_delta/Transformation.cpp
@@ -675,7 +675,10 @@ const DeclContext *Transformation::getDeclContextFromSpecifier(
return NAD->getNamespace()->getCanonicalDecl();
}
case NestedNameSpecifier::TypeSpec: // Fall-through
- case NestedNameSpecifier::TypeSpecWithTemplate: {
+#if LLVM_VERSION_MAJOR <= 20
+ case NestedNameSpecifier::TypeSpecWithTemplate:
+#endif
+ {
const Type *Ty = NNS->getAsType();
if (const RecordType *RT = Ty->getAs<RecordType>())
return RT->getDecl();
diff --git a/clang_delta/TransformationManager.cpp b/clang_delta/TransformationManager.cpp
index d985bd514..d36f62a5f 100644
--- a/clang_delta/TransformationManager.cpp
+++ b/clang_delta/TransformationManager.cpp
@@ -163,7 +163,12 @@ bool TransformationManager::initializeCompilerInstance(std::string &ErrorMsg)
ClangInstance->createFileManager();
if(CLCPath != NULL && ClangInstance->hasFileManager() &&
- ClangInstance->getFileManager().getDirectory(CLCPath, false)) {
+#if LLVM_VERSION_MAJOR > 20
+ ClangInstance->getFileManager().getDirectoryRef(CLCPath, false)
+#else
+ ClangInstance->getFileManager().getDirectory(CLCPath, false)
+#endif
+ ) {
Args.push_back("-I");
Args.push_back(CLCPath);
}
@@ -186,7 +191,12 @@ bool TransformationManager::initializeCompilerInstance(std::string &ErrorMsg)
TargetInfo *Target =
TargetInfo::CreateTargetInfo(ClangInstance->getDiagnostics(),
- ClangInstance->getInvocation().TargetOpts);
+#if LLVM_VERSION_MAJOR > 20
+ ClangInstance->getInvocation().getTargetOpts()
+#else
+ ClangInstance->getInvocation().TargetOpts
+#endif
+ );
ClangInstance->setTarget(Target);
if (const char *env = getenv("CVISE_INCLUDE_PATH")) {
|