|
95 | 95 | #if !defined(CPPINTEROP_USE_CLING) && !defined(EMSCRIPTEN) |
96 | 96 | struct __clang_Interpreter_NewTag { |
97 | 97 | } __ci_newtag; |
98 | | -#if CLANG_VERSION_MAJOR >= 22 |
| 98 | +#if CLANG_VERSION_MAJOR > 21 |
99 | 99 | extern "C" void* __clang_Interpreter_SetValueWithAlloc(void* This, void* OutVal, |
100 | 100 | void* OpaqueType) |
101 | 101 | #else |
102 | 102 | void* __clang_Interpreter_SetValueWithAlloc(void* This, void* OutVal, |
103 | 103 | void* OpaqueType); |
104 | 104 | #endif |
105 | 105 |
|
106 | | -#if CLANG_VERSION_MAJOR >= 19 |
| 106 | +#if CLANG_VERSION_MAJOR > 18 |
107 | 107 | extern "C" void __clang_Interpreter_SetValueNoAlloc(void* This, |
108 | 108 | void* OutVal, |
109 | 109 | void* OpaqueType, ...); |
110 | | -#elif CLANG_VERSION_MAJOR == 18 |
| 110 | +#else |
111 | 111 | void __clang_Interpreter_SetValueNoAlloc(void*, void*, void*); |
112 | 112 | void __clang_Interpreter_SetValueNoAlloc(void*, void*, void*, void*); |
113 | 113 | void __clang_Interpreter_SetValueNoAlloc(void*, void*, void*, float); |
@@ -3359,26 +3359,19 @@ CPPINTEROP_API JitCall MakeFunctionCallable(TCppConstFunction_t func) { |
3359 | 3359 |
|
3360 | 3360 | namespace { |
3361 | 3361 | #if !defined(CPPINTEROP_USE_CLING) && !defined(EMSCRIPTEN) |
3362 | | -static bool DefineAbsoluteSymbol(compat::Interpreter& I, |
3363 | | - const char* linker_mangled_name, |
3364 | | - uint64_t address) { |
| 3362 | +bool DefineAbsoluteSymbol(compat::Interpreter& I, |
| 3363 | + const char* linker_mangled_name, uint64_t address) { |
3365 | 3364 | using namespace llvm; |
3366 | 3365 | using namespace llvm::orc; |
3367 | 3366 |
|
3368 | 3367 | llvm::orc::LLJIT& Jit = *compat::getExecutionEngine(I); |
3369 | 3368 | llvm::orc::ExecutionSession& ES = Jit.getExecutionSession(); |
3370 | 3369 | JITDylib& DyLib = *Jit.getProcessSymbolsJITDylib().get(); |
3371 | 3370 |
|
3372 | | - llvm::orc::SymbolMap InjectedSymbols; |
3373 | | - auto& DL = compat::getExecutionEngine(I)->getDataLayout(); |
3374 | | - char GlobalPrefix = DL.getGlobalPrefix(); |
3375 | | - std::string tmp(linker_mangled_name); |
3376 | | - if (GlobalPrefix != '\0') { |
3377 | | - tmp = std::string(1, GlobalPrefix) + tmp; |
3378 | | - } |
3379 | | - auto Name = ES.intern(tmp); |
3380 | | - InjectedSymbols[Name] = |
3381 | | - ExecutorSymbolDef(ExecutorAddr(address), JITSymbolFlags::Exported); |
| 3371 | + llvm::orc::SymbolMap InjectedSymbols{ |
| 3372 | + {ES.intern(linker_mangled_name), ExecutorSymbolDef(ExecutorAddr(address), |
| 3373 | + JITSymbolFlags::Exported)} |
| 3374 | + }; |
3382 | 3375 |
|
3383 | 3376 | if (Error Err = DyLib.define(absoluteSymbols(InjectedSymbols))) { |
3384 | 3377 | logAllUnhandledErrors(std::move(Err), errs(), |
|
0 commit comments