summaryrefslogtreecommitdiff
path: root/libre/qtcreator/qtcreator-clang-10.patch
blob: 553f5c004e0fd133bb74770341151447bf0a1b3d (plain)
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
From 44023c8f43fd8daf8b7be305ea6d99b8b56fa551 Mon Sep 17 00:00:00 2001
From: Orgad Shaneh <orgad.shaneh@audiocodes.com>
Date: Mon, 17 Feb 2020 23:21:17 +0200
Subject: Clang: Fix build with Clang/LLVM 10

Change-Id: I740286c9dcfd325b1c31ab863fb5c91bf9c6ec70
Reviewed-by: hjk <hjk@qt.io>
---
 src/plugins/clangformat/clangformatutils.cpp       |  8 +++++++
 .../source/collectbuilddependencytoolaction.h      | 17 ++++++++++++-
 .../source/collectusedmacroactionfactory.h         | 12 ++++++++++
 .../source/generatepchactionfactory.h              |  7 ++++++
 .../clangrefactoringbackend/source/clangquery.cpp  |  3 ++-
 .../source/collectsymbolsaction.h                  |  6 ++++-
 .../source/indexdataconsumer.cpp                   | 28 +++++++++++++++-------
 .../source/indexdataconsumer.h                     | 28 +++++++++++++++-------
 .../source/symbolscollector.cpp                    |  4 ++++
 9 files changed, 92 insertions(+), 21 deletions(-)

diff --git a/src/plugins/clangformat/clangformatutils.cpp b/src/plugins/clangformat/clangformatutils.cpp
index f087f77a94..0a32d3a929 100644
--- a/src/plugins/clangformat/clangformatutils.cpp
+++ b/src/plugins/clangformat/clangformatutils.cpp
@@ -57,7 +57,11 @@ static clang::format::FormatStyle qtcStyle()
     style.AlignOperands = true;
     style.AlignTrailingComments = true;
     style.AllowAllParametersOfDeclarationOnNextLine = true;
+#if LLVM_VERSION_MAJOR >= 10
+    style.AllowShortBlocksOnASingleLine = FormatStyle::SBS_Never;
+#else
     style.AllowShortBlocksOnASingleLine = false;
+#endif
     style.AllowShortCaseLabelsOnASingleLine = false;
     style.AllowShortFunctionsOnASingleLine = FormatStyle::SFS_Inline;
 #if LLVM_VERSION_MAJOR >= 9
@@ -72,7 +76,11 @@ static clang::format::FormatStyle qtcStyle()
     style.BinPackArguments = false;
     style.BinPackParameters = false;
     style.BraceWrapping.AfterClass = true;
+#if LLVM_VERSION_MAJOR >= 10
+    style.BraceWrapping.AfterControlStatement = FormatStyle::BWACS_Never;
+#else
     style.BraceWrapping.AfterControlStatement = false;
+#endif
     style.BraceWrapping.AfterEnum = false;
     style.BraceWrapping.AfterFunction = true;
     style.BraceWrapping.AfterNamespace = false;
diff --git a/src/tools/clangpchmanagerbackend/source/collectbuilddependencytoolaction.h b/src/tools/clangpchmanagerbackend/source/collectbuilddependencytoolaction.h
index 538f2c7d3f..88ed3d2344 100644
--- a/src/tools/clangpchmanagerbackend/source/collectbuilddependencytoolaction.h
+++ b/src/tools/clangpchmanagerbackend/source/collectbuilddependencytoolaction.h
@@ -60,6 +60,16 @@ public:
                                                                     diagnosticConsumer);
     }
 
+#if LLVM_VERSION_MAJOR >= 10
+    std::unique_ptr<clang::FrontendAction> create() override
+    {
+        return std::make_unique<CollectBuildDependencyAction>(
+                    m_buildDependency,
+                    m_filePathCache,
+                    m_excludedIncludeUIDs,
+                    m_alreadyIncludedFileUIDs);
+    }
+#else
     clang::FrontendAction *create() override
     {
         return new CollectBuildDependencyAction(m_buildDependency,
@@ -67,6 +77,7 @@ public:
                                                 m_excludedIncludeUIDs,
                                                 m_alreadyIncludedFileUIDs);
     }
+#endif
 
     std::vector<uint> generateExcludedIncludeFileUIDs(clang::FileManager &fileManager) const
     {
@@ -77,7 +88,11 @@ public:
             NativeFilePath nativeFilePath{filePath};
             const clang::FileEntry *file = fileManager.getFile({nativeFilePath.path().data(),
                                                                 nativeFilePath.path().size()},
-                                                               true);
+                                                               true)
+#if LLVM_VERSION_MAJOR >= 10
+                    .get()
+#endif
+                    ;
 
             if (file)
                 fileUIDs.push_back(file->getUID());
diff --git a/src/tools/clangpchmanagerbackend/source/collectusedmacroactionfactory.h b/src/tools/clangpchmanagerbackend/source/collectusedmacroactionfactory.h
index 423d5f8876..473b8e7df8 100644
--- a/src/tools/clangpchmanagerbackend/source/collectusedmacroactionfactory.h
+++ b/src/tools/clangpchmanagerbackend/source/collectusedmacroactionfactory.h
@@ -61,6 +61,17 @@ public:
                                                                     diagnosticConsumer);
     }
 
+#if LLVM_VERSION_MAJOR >= 10
+    std::unique_ptr<clang::FrontendAction> create() override
+    {
+        return std::make_unique<CollectUsedMacrosAction>(
+                    m_usedMacros,
+                    m_filePathCache,
+                    m_sourceDependencies,
+                    m_sourceFiles,
+                    m_fileStatuses);
+    }
+#else
     clang::FrontendAction *create() override
     {
         return new CollectUsedMacrosAction(m_usedMacros,
@@ -69,6 +80,7 @@ public:
                                            m_sourceFiles,
                                            m_fileStatuses);
     }
+#endif
 
 private:
     UsedMacros &m_usedMacros;
diff --git a/src/tools/clangpchmanagerbackend/source/generatepchactionfactory.h b/src/tools/clangpchmanagerbackend/source/generatepchactionfactory.h
index c4a8cae028..f1e4c74457 100644
--- a/src/tools/clangpchmanagerbackend/source/generatepchactionfactory.h
+++ b/src/tools/clangpchmanagerbackend/source/generatepchactionfactory.h
@@ -68,10 +68,17 @@ public:
         , m_fileContent(fileContent)
     {}
 
+#if LLVM_VERSION_MAJOR >= 10
+    std::unique_ptr<clang::FrontendAction> create() override
+    {
+        return std::make_unique<GeneratePCHAction>(m_filePath, m_fileContent);
+    }
+#else
     clang::FrontendAction *create() override
     {
         return new GeneratePCHAction{m_filePath, m_fileContent};
     }
+#endif
 
 private:
     llvm::StringRef m_filePath;
diff --git a/src/tools/clangrefactoringbackend/source/clangquery.cpp b/src/tools/clangrefactoringbackend/source/clangquery.cpp
index 21ebeb8367..78f2350d8d 100644
--- a/src/tools/clangrefactoringbackend/source/clangquery.cpp
+++ b/src/tools/clangrefactoringbackend/source/clangquery.cpp
@@ -78,7 +78,8 @@ void ClangQuery::findLocations()
                    std::make_move_iterator(asts.end()),
                    [&] (std::unique_ptr<clang::ASTUnit> &&ast) {
         Diagnostics diagnostics;
-        auto optionalMatcher = Parser::parseMatcherExpression({m_query.data(), m_query.size()},
+        llvm::StringRef query{m_query.data(), m_query.size()};
+        auto optionalMatcher = Parser::parseMatcherExpression(query,
                                                               nullptr,
                                                               &diagnostics);
         parseDiagnostics(diagnostics);
diff --git a/src/tools/clangrefactoringbackend/source/collectsymbolsaction.h b/src/tools/clangrefactoringbackend/source/collectsymbolsaction.h
index a38f1c4f87..4f36adadf5 100644
--- a/src/tools/clangrefactoringbackend/source/collectsymbolsaction.h
+++ b/src/tools/clangrefactoringbackend/source/collectsymbolsaction.h
@@ -48,7 +48,11 @@ class CollectSymbolsAction : public clang::WrapperFrontendAction
 public:
     CollectSymbolsAction(std::shared_ptr<IndexDataConsumer> indexDataConsumer)
         : clang::WrapperFrontendAction(
-            clang::index::createIndexingAction(indexDataConsumer, createIndexingOptions(), nullptr))
+            clang::index::createIndexingAction(indexDataConsumer, createIndexingOptions()
+#if LLVM_VERSION_MAJOR < 10
+                                               , nullptr
+#endif
+                                               ))
         , m_indexDataConsumer(indexDataConsumer)
     {}
 
diff --git a/src/tools/clangrefactoringbackend/source/indexdataconsumer.cpp b/src/tools/clangrefactoringbackend/source/indexdataconsumer.cpp
index e287144462..5d21b30b9c 100644
--- a/src/tools/clangrefactoringbackend/source/indexdataconsumer.cpp
+++ b/src/tools/clangrefactoringbackend/source/indexdataconsumer.cpp
@@ -118,11 +118,16 @@ bool IndexDataConsumer::isAlreadyParsed(clang::FileID fileId, SourcesManager &so
     return sourcesManager.alreadyParsed(filePathId(fileEntry), fileEntry->getModificationTime());
 }
 
-bool IndexDataConsumer::handleDeclOccurence(const clang::Decl *declaration,
-                                            clang::index::SymbolRoleSet symbolRoles,
-                                            llvm::ArrayRef<clang::index::SymbolRelation> /*symbolRelations*/,
-                                            clang::SourceLocation sourceLocation,
-                                            IndexDataConsumer::ASTNodeInfo /*astNodeInfo*/)
+#if LLVM_VERSION_MAJOR >= 10
+    bool IndexDataConsumer::handleDeclOccurrence(
+#else
+    bool IndexDataConsumer::handleDeclOccurence(
+#endif
+        const clang::Decl *declaration,
+        clang::index::SymbolRoleSet symbolRoles,
+        llvm::ArrayRef<clang::index::SymbolRelation> /*symbolRelations*/,
+        clang::SourceLocation sourceLocation,
+        IndexDataConsumer::ASTNodeInfo /*astNodeInfo*/)
 {
     const auto *namedDeclaration = clang::dyn_cast<clang::NamedDecl>(declaration);
     if (namedDeclaration) {
@@ -175,10 +180,15 @@ SourceLocationKind macroSymbolType(clang::index::SymbolRoleSet roles)
 
 } // namespace
 
-bool IndexDataConsumer::handleMacroOccurence(const clang::IdentifierInfo *identifierInfo,
-                                             const clang::MacroInfo *macroInfo,
-                                             clang::index::SymbolRoleSet roles,
-                                             clang::SourceLocation sourceLocation)
+#if LLVM_VERSION_MAJOR >= 10
+bool IndexDataConsumer::handleMacroOccurrence(
+#else
+bool IndexDataConsumer::handleMacroOccurence(
+#endif
+        const clang::IdentifierInfo *identifierInfo,
+        const clang::MacroInfo *macroInfo,
+        clang::index::SymbolRoleSet roles,
+        clang::SourceLocation sourceLocation)
 {
     if (macroInfo && sourceLocation.isFileID()
         && !isAlreadyParsed(m_sourceManager->getFileID(sourceLocation), m_macroSourcesManager)
diff --git a/src/tools/clangrefactoringbackend/source/indexdataconsumer.h b/src/tools/clangrefactoringbackend/source/indexdataconsumer.h
index c80e066b6c..e1d3529806 100644
--- a/src/tools/clangrefactoringbackend/source/indexdataconsumer.h
+++ b/src/tools/clangrefactoringbackend/source/indexdataconsumer.h
@@ -57,16 +57,26 @@ public:
     IndexDataConsumer(const IndexDataConsumer &) = delete;
     IndexDataConsumer &operator=(const IndexDataConsumer &) = delete;
 
-    bool handleDeclOccurence(const clang::Decl *declaration,
-                             clang::index::SymbolRoleSet symbolRoles,
-                             llvm::ArrayRef<clang::index::SymbolRelation> symbolRelations,
-                             clang::SourceLocation sourceLocation,
-                             ASTNodeInfo astNodeInfo) override;
+#if LLVM_VERSION_MAJOR >= 10
+    bool handleDeclOccurrence(
+#else
+    bool handleDeclOccurence(
+#endif
+            const clang::Decl *declaration,
+            clang::index::SymbolRoleSet symbolRoles,
+            llvm::ArrayRef<clang::index::SymbolRelation> symbolRelations,
+            clang::SourceLocation sourceLocation,
+            ASTNodeInfo astNodeInfo) override;
 
-    bool handleMacroOccurence(const clang::IdentifierInfo *identifierInfo,
-                              const clang::MacroInfo *macroInfo,
-                              clang::index::SymbolRoleSet roles,
-                              clang::SourceLocation sourceLocation) override;
+#if LLVM_VERSION_MAJOR >= 10
+    bool handleMacroOccurrence(
+#else
+    bool handleMacroOccurence(
+#endif
+                const clang::IdentifierInfo *identifierInfo,
+                const clang::MacroInfo *macroInfo,
+                clang::index::SymbolRoleSet roles,
+                clang::SourceLocation sourceLocation) override;
 
     void finish() override;
 
diff --git a/src/tools/clangrefactoringbackend/source/symbolscollector.cpp b/src/tools/clangrefactoringbackend/source/symbolscollector.cpp
index a233f6d8fe..dffd583894 100644
--- a/src/tools/clangrefactoringbackend/source/symbolscollector.cpp
+++ b/src/tools/clangrefactoringbackend/source/symbolscollector.cpp
@@ -74,7 +74,11 @@ std::unique_ptr<clang::tooling::FrontendActionFactory> newFrontendActionFactory(
             : m_action(consumerFactory)
         {}
 
+#if LLVM_VERSION_MAJOR >= 10
+        std::unique_ptr<clang::FrontendAction> create() override { return std::make_unique<AdaptorAction>(m_action); }
+#else
         clang::FrontendAction *create() override { return new AdaptorAction(m_action); }
+#endif
 
     private:
         class AdaptorAction : public clang::ASTFrontendAction
-- 
cgit v1.2.1