Skip to content

Commit 6327123

Browse files
committed
Remove cling 1.0 support
1 parent 951775f commit 6327123

File tree

7 files changed

+17
-98
lines changed

7 files changed

+17
-98
lines changed

CMakeLists.txt

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,13 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
6767
include(GNUInstallDirs)
6868
## Define supported version of clang and llvm
6969

70-
set(CLANG_MIN_SUPPORTED 13.0)
70+
set(CLANG_MIN_SUPPORTED 16.0)
7171
set(CLANG_MAX_SUPPORTED "20.1.x")
7272
set(CLANG_VERSION_UPPER_BOUND 21.0.0)
73-
set(LLD_MIN_SUPPORTED 13.0)
73+
set(LLD_MIN_SUPPORTED 16.0)
7474
set(LLD_MAX_SUPPORTED "20.1.x")
7575
set(LLD_VERSION_UPPER_BOUND 21.0.0)
76-
set(LLVM_MIN_SUPPORTED 13.0)
76+
set(LLVM_MIN_SUPPORTED 16.0)
7777
set(LLVM_MAX_SUPPORTED "20.1.x")
7878
set(LLVM_VERSION_UPPER_BOUND 21.0.0)
7979

@@ -230,21 +230,12 @@ endif()
230230
message(STATUS "Found supported version: Clang ${CLANG_PACKAGE_VERSION}")
231231
message(STATUS "Using ClangConfig.cmake in: ${Clang_DIR}")
232232

233-
## Clang 13 require c++14 or later, Clang 16 require c++17 or later.
234-
if (CLANG_VERSION_MAJOR GREATER_EQUAL 16)
235-
if (NOT CMAKE_CXX_STANDARD)
236-
set (CMAKE_CXX_STANDARD 17)
237-
endif()
238-
if (CMAKE_CXX_STANDARD LESS 17)
239-
message(fatal "LLVM/CppInterOp requires c++17 or later")
240-
endif()
241-
elseif (CLANG_VERSION_MAJOR GREATER_EQUAL 13)
242-
if (NOT CMAKE_CXX_STANDARD)
243-
set (CMAKE_CXX_STANDARD 14)
244-
endif()
245-
if (CMAKE_CXX_STANDARD LESS 14)
246-
message(fatal "LLVM/CppInterOp requires c++14 or later")
247-
endif()
233+
## Clang 16 require c++17 or later.
234+
if (NOT CMAKE_CXX_STANDARD)
235+
set (CMAKE_CXX_STANDARD 17)
236+
endif()
237+
if (CMAKE_CXX_STANDARD LESS 17)
238+
message(fatal "LLVM/CppInterOp requires c++17 or later")
248239
endif()
249240

250241
## Find supported Cling

lib/Interpreter/Compatibility.h

Lines changed: 1 addition & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -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

133129
inline void codeComplete(std::vector<std::string>& Results,
@@ -208,9 +204,6 @@ namespace compat {
208204

209205
inline std::unique_ptr<clang::Interpreter>
210206
createClangInterpreter(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,19 @@ 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
236+
244237
if (!ciOrErr) {
245238
llvm::logAllUnhandledErrors(ciOrErr.takeError(), llvm::errs(),
246239
"Failed to build Incremental compiler:");
247240
return nullptr;
248241
}
249-
#if CLANG_VERSION_MAJOR < 16
250-
auto innerOrErr = clang::Interpreter::create(std::move(*ciOrErr));
251-
#else
252242
(*ciOrErr)->LoadRequestedPlugins();
253243
if (CudaEnabled)
254244
DeviceCI->LoadRequestedPlugins();
255245
auto innerOrErr =
256246
CudaEnabled ? clang::Interpreter::createWithCUDA(std::move(*ciOrErr),
257247
std::move(DeviceCI))
258248
: clang::Interpreter::create(std::move(*ciOrErr));
259-
#endif // CLANG_VERSION_MAJOR < 16
260249

261250
if (!innerOrErr) {
262251
llvm::logAllUnhandledErrors(innerOrErr.takeError(), llvm::errs(),
@@ -303,29 +292,15 @@ inline void maybeMangleDeclName(const clang::GlobalDecl& GD,
303292
RawStr.flush();
304293
}
305294

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
310295
// Clang 18 - Add new Interpreter methods: CodeComplete
311296

312297
inline llvm::orc::LLJIT* getExecutionEngine(clang::Interpreter& I) {
313-
#if CLANG_VERSION_MAJOR >= 14
314298
auto* engine = &llvm::cantFail(I.getExecutionEngine());
315299
return const_cast<llvm::orc::LLJIT*>(engine);
316-
#else
317-
assert(0 && "Not implemented in Clang <14!");
318-
return nullptr;
319-
#endif
320300
}
321301

322302
inline llvm::Expected<llvm::JITTargetAddress>
323303
getSymbolAddress(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
329304

330305
auto AddrOrErr = I.getSymbolAddress(IRName);
331306
if (llvm::Error Err = AddrOrErr.takeError())
@@ -343,7 +318,6 @@ getSymbolAddress(clang::Interpreter& I, clang::GlobalDecl GD) {
343318
inline llvm::Expected<llvm::JITTargetAddress>
344319
getSymbolAddressFromLinkerName(clang::Interpreter& I,
345320
llvm::StringRef LinkerName) {
346-
#if CLANG_VERSION_MAJOR >= 14
347321
const auto& DL = getExecutionEngine(I)->getDataLayout();
348322
char GlobalPrefix = DL.getGlobalPrefix();
349323
std::string LinkerNameTmp(LinkerName);
@@ -354,21 +328,10 @@ getSymbolAddressFromLinkerName(clang::Interpreter& I,
354328
if (llvm::Error Err = AddrOrErr.takeError())
355329
return std::move(Err);
356330
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
362331
}
363332

364333
inline llvm::Error Undo(clang::Interpreter& I, unsigned N = 1) {
365-
#if CLANG_VERSION_MAJOR >= 15
366334
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
372335
}
373336

374337
inline void codeComplete(std::vector<std::string>& Results,
@@ -421,34 +384,14 @@ using Interpreter = Cpp::Interpreter;
421384
namespace compat {
422385

423386
// Clang >= 14 change type name to string (spaces formatting problem)
424-
#if CLANG_VERSION_MAJOR >= 14
425387
inline std::string FixTypeName(const std::string type_name) {
426388
return type_name;
427389
}
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
439390

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
444391
inline std::string MakeResourceDir(llvm::StringRef Dir) {
445392
llvm::SmallString<128> P(Dir);
446393
llvm::sys::path::append(P, CLANG_INSTALL_LIBDIR_BASENAME, "clang",
447-
#if CLANG_VERSION_MAJOR < 16
448-
CLANG_VERSION_STRING
449-
#else
450394
CLANG_VERSION_MAJOR_STRING
451-
#endif
452395
);
453396
return std::string(P.str());
454397
}

lib/Interpreter/CppInterOp.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3046,11 +3046,7 @@ namespace Cpp {
30463046
std::string detected_resource_dir = outs.back();
30473047

30483048
std::string version =
3049-
#if CLANG_VERSION_MAJOR < 16
3050-
CLANG_VERSION_STRING;
3051-
#else
30523049
CLANG_VERSION_MAJOR_STRING;
3053-
#endif
30543050
// We need to check if the detected resource directory is compatible.
30553051
if (llvm::sys::path::filename(detected_resource_dir) != version)
30563052
return "";

package-lock.json

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

unittests/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ if(EMSCRIPTEN)
1111
set(gtest_libs gtest gmock)
1212
else()
1313
set(gtest_libs gtest gtest_main)
14-
# Clang prior than clang13 (I think) merges both gmock into gtest.
1514
if (TARGET gmock)
1615
list(APPEND gtest_libs gmock gmock_main)
1716
endif()

unittests/CppInterOp/CUDATest.cpp

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,6 @@ using namespace TestUtils;
99

1010
static bool HasCudaSDK() {
1111
auto supportsCudaSDK = []() {
12-
#if CLANG_VERSION_MAJOR < 16
13-
// FIXME: Enable this for cling.
14-
return false;
15-
#endif // CLANG_VERSION_MAJOR < 16
1612
if (!Cpp::CreateInterpreter({}, {"--cuda"}))
1713
return false;
1814
return Cpp::Declare("__global__ void test_func() {}"
@@ -24,10 +20,6 @@ static bool HasCudaSDK() {
2420

2521
static bool HasCudaRuntime() {
2622
auto supportsCuda = []() {
27-
#if CLANG_VERSION_MAJOR < 16
28-
// FIXME: Enable this for cling.
29-
return false;
30-
#endif //CLANG_VERSION_MAJOR < 16
3123
if (!HasCudaSDK())
3224
return false;
3325

@@ -43,11 +35,7 @@ static bool HasCudaRuntime() {
4335
return hasCuda;
4436
}
4537

46-
#if CLANG_VERSION_MAJOR < 16
47-
TEST(DISABLED_CUDATest, Sanity) {
48-
#else
4938
TEST(CUDATest, Sanity) {
50-
#endif // CLANG_VERSION_MAJOR < 16
5139
#ifdef _WIN32
5240
GTEST_SKIP() << "Disabled on Windows. Needs fixing.";
5341
#endif
@@ -76,4 +64,4 @@ TEST(CUDATest, CUDARuntime) {
7664
GTEST_SKIP() << "Skipping CUDA tests as CUDA runtime not found";
7765

7866
EXPECT_TRUE(HasCudaRuntime());
79-
}
67+
}

unittests/CppInterOp/ScopeReflectionTest.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -859,14 +859,10 @@ template<class T> constexpr T pi = T(3.1415926535897932385L);
859859
auto* VD = cast<VarTemplateSpecializationDecl>((Decl*)Instance1);
860860
VarTemplateDecl* VDTD1 = VD->getSpecializedTemplate();
861861
EXPECT_TRUE(VDTD1->isThisDeclarationADefinition());
862-
#if CLANG_VERSION_MAJOR > 13
863862
#if CLANG_VERSION_MAJOR <= 18
864863
TemplateArgument TA1 = (*VD->getTemplateArgsInfo())[0].getArgument();
865864
#else
866865
TemplateArgument TA1 = (*VD->getTemplateArgsAsWritten())[0].getArgument();
867-
#endif // CLANG_VERSION_MAJOR
868-
#else
869-
TemplateArgument TA1 = VD->getTemplateArgsInfo()[0].getArgument();
870866
#endif // CLANG_VERSION_MAJOR
871867
EXPECT_TRUE(TA1.getAsType()->isIntegerType());
872868
}

0 commit comments

Comments
 (0)