@@ -122,12 +122,8 @@ getSymbolAddress(cling::Interpreter& I, llvm::StringRef IRName) {
122122 llvm::orc::SymbolNameVector Names;
123123 llvm::orc::ExecutionSession& ES = Jit.getExecutionSession ();
124124 Names.push_back (ES.intern (IRName));
125- #if CLANG_VERSION_MAJOR < 16
126- return llvm::make_error<llvm::orc::SymbolsNotFound>(Names);
127- #else
128125 return llvm::make_error<llvm::orc::SymbolsNotFound>(ES.getSymbolStringPool (),
129126 std::move (Names));
130- #endif // CLANG_VERSION_MAJOR
131127}
132128
133129inline void codeComplete (std::vector<std::string>& Results,
@@ -208,9 +204,6 @@ namespace compat {
208204
209205inline std::unique_ptr<clang::Interpreter>
210206createClangInterpreter (std::vector<const char *>& args) {
211- #if CLANG_VERSION_MAJOR < 16
212- auto ciOrErr = clang::IncrementalCompilerBuilder::create (args);
213- #else
214207 auto has_arg = [](const char * x, llvm::StringRef match = " cuda" ) {
215208 llvm::StringRef Arg = x;
216209 Arg = Arg.trim ().ltrim (' -' );
@@ -240,23 +233,18 @@ createClangInterpreter(std::vector<const char*>& args) {
240233 DeviceCI = std::move (*devOrErr);
241234 }
242235 auto ciOrErr = CudaEnabled ? CB.CreateCudaHost () : CB.CreateCpp ();
243- #endif // CLANG_VERSION_MAJOR < 16
244236 if (!ciOrErr) {
245237 llvm::logAllUnhandledErrors (ciOrErr.takeError (), llvm::errs (),
246238 " Failed to build Incremental compiler:" );
247239 return nullptr ;
248240 }
249- #if CLANG_VERSION_MAJOR < 16
250- auto innerOrErr = clang::Interpreter::create (std::move (*ciOrErr));
251- #else
252241 (*ciOrErr)->LoadRequestedPlugins ();
253242 if (CudaEnabled)
254243 DeviceCI->LoadRequestedPlugins ();
255244 auto innerOrErr =
256245 CudaEnabled ? clang::Interpreter::createWithCUDA (std::move (*ciOrErr),
257246 std::move (DeviceCI))
258247 : clang::Interpreter::create (std::move (*ciOrErr));
259- #endif // CLANG_VERSION_MAJOR < 16
260248
261249 if (!innerOrErr) {
262250 llvm::logAllUnhandledErrors (innerOrErr.takeError (), llvm::errs (),
@@ -303,29 +291,15 @@ inline void maybeMangleDeclName(const clang::GlobalDecl& GD,
303291 RawStr.flush ();
304292}
305293
306- // Clang 13 - Initial implementation of Interpreter and clang-repl
307- // Clang 14 - Add new Interpreter methods: getExecutionEngine,
308- // getSymbolAddress, getSymbolAddressFromLinkerName
309- // Clang 15 - Add new Interpreter methods: Undo
310294// Clang 18 - Add new Interpreter methods: CodeComplete
311295
312296inline llvm::orc::LLJIT* getExecutionEngine (clang::Interpreter& I) {
313- #if CLANG_VERSION_MAJOR >= 14
314297 auto * engine = &llvm::cantFail (I.getExecutionEngine ());
315298 return const_cast <llvm::orc::LLJIT*>(engine);
316- #else
317- assert (0 && " Not implemented in Clang <14!" );
318- return nullptr ;
319- #endif
320299}
321300
322301inline llvm::Expected<llvm::JITTargetAddress>
323302getSymbolAddress (clang::Interpreter& I, llvm::StringRef IRName) {
324- #if CLANG_VERSION_MAJOR < 14
325- assert (0 && " Not implemented in Clang <14!" );
326- return llvm::createStringError (llvm::inconvertibleErrorCode (),
327- " Not implemented in Clang <14!" );
328- #endif // CLANG_VERSION_MAJOR < 14
329303
330304 auto AddrOrErr = I.getSymbolAddress (IRName);
331305 if (llvm::Error Err = AddrOrErr.takeError ())
@@ -343,7 +317,6 @@ getSymbolAddress(clang::Interpreter& I, clang::GlobalDecl GD) {
343317inline llvm::Expected<llvm::JITTargetAddress>
344318getSymbolAddressFromLinkerName (clang::Interpreter& I,
345319 llvm::StringRef LinkerName) {
346- #if CLANG_VERSION_MAJOR >= 14
347320 const auto & DL = getExecutionEngine (I)->getDataLayout ();
348321 char GlobalPrefix = DL.getGlobalPrefix ();
349322 std::string LinkerNameTmp (LinkerName);
@@ -354,21 +327,10 @@ getSymbolAddressFromLinkerName(clang::Interpreter& I,
354327 if (llvm::Error Err = AddrOrErr.takeError ())
355328 return std::move (Err);
356329 return AddrOrErr->getValue ();
357- #else
358- assert (0 && " Not implemented in Clang <14!" );
359- return llvm::createStringError (llvm::inconvertibleErrorCode (),
360- " Not implemented in Clang <14!" );
361- #endif
362330}
363331
364332inline llvm::Error Undo (clang::Interpreter& I, unsigned N = 1 ) {
365- #if CLANG_VERSION_MAJOR >= 15
366333 return I.Undo (N);
367- #else
368- assert (0 && " Not implemented in Clang <15!" );
369- return llvm::createStringError (llvm::inconvertibleErrorCode (),
370- " Not implemented in Clang <15!" );
371- #endif
372334}
373335
374336inline void codeComplete (std::vector<std::string>& Results,
@@ -421,35 +383,14 @@ using Interpreter = Cpp::Interpreter;
421383namespace compat {
422384
423385// Clang >= 14 change type name to string (spaces formatting problem)
424- #if CLANG_VERSION_MAJOR >= 14
425386inline std::string FixTypeName (const std::string type_name) {
426387 return type_name;
427388}
428- #else
429- inline std::string FixTypeName (const std::string type_name) {
430- std::string result = type_name;
431- size_t pos = 0 ;
432- while ((pos = result.find (" [" , pos)) != std::string::npos) {
433- result.erase (pos, 1 );
434- pos++;
435- }
436- return result;
437- }
438- #endif
439389
440- // Clang >= 16 change CLANG_LIBDIR_SUFFIX to CLANG_INSTALL_LIBDIR_BASENAME
441- #if CLANG_VERSION_MAJOR < 16
442- #define CLANG_INSTALL_LIBDIR_BASENAME (llvm::Twine(" lib" ) + CLANG_LIBDIR_SUFFIX)
443- #endif
444390inline std::string MakeResourceDir (llvm::StringRef Dir) {
445391 llvm::SmallString<128 > P (Dir);
446392 llvm::sys::path::append (P, CLANG_INSTALL_LIBDIR_BASENAME, " clang" ,
447- #if CLANG_VERSION_MAJOR < 16
448- CLANG_VERSION_STRING
449- #else
450- CLANG_VERSION_MAJOR_STRING
451- #endif
452- );
393+ CLANG_VERSION_MAJOR_STRING);
453394 return std::string (P.str ());
454395}
455396
0 commit comments