|
91 | 91 | #if !defined(CPPINTEROP_USE_CLING) && !defined(EMSCRIPTEN) |
92 | 92 | struct __clang_Interpreter_NewTag { |
93 | 93 | } __ci_newtag; |
94 | | -#if CLANG_VERSION_MAJOR >= 22 |
| 94 | +#if CLANG_VERSION_MAJOR > 21 |
95 | 95 | extern "C" void* __clang_Interpreter_SetValueWithAlloc(void* This, void* OutVal, |
96 | 96 | void* OpaqueType) |
97 | 97 | #else |
98 | 98 | void* __clang_Interpreter_SetValueWithAlloc(void* This, void* OutVal, |
99 | 99 | void* OpaqueType); |
100 | 100 | #endif |
101 | 101 |
|
102 | | -#if CLANG_VERSION_MAJOR >= 19 |
| 102 | +#if CLANG_VERSION_MAJOR > 18 |
103 | 103 | extern "C" void __clang_Interpreter_SetValueNoAlloc(void* This, |
104 | 104 | void* OutVal, |
105 | 105 | void* OpaqueType, ...); |
106 | | -#elif CLANG_VERSION_MAJOR == 18 |
| 106 | +#else |
107 | 107 | void __clang_Interpreter_SetValueNoAlloc(void*, void*, void*); |
108 | 108 | void __clang_Interpreter_SetValueNoAlloc(void*, void*, void*, void*); |
109 | 109 | void __clang_Interpreter_SetValueNoAlloc(void*, void*, void*, float); |
@@ -3198,26 +3198,19 @@ CPPINTEROP_API JitCall MakeFunctionCallable(TCppConstFunction_t func) { |
3198 | 3198 |
|
3199 | 3199 | namespace { |
3200 | 3200 | #if !defined(CPPINTEROP_USE_CLING) && !defined(EMSCRIPTEN) |
3201 | | -static bool DefineAbsoluteSymbol(compat::Interpreter& I, |
3202 | | - const char* linker_mangled_name, |
3203 | | - uint64_t address) { |
| 3201 | +bool DefineAbsoluteSymbol(compat::Interpreter& I, |
| 3202 | + const char* linker_mangled_name, uint64_t address) { |
3204 | 3203 | using namespace llvm; |
3205 | 3204 | using namespace llvm::orc; |
3206 | 3205 |
|
3207 | 3206 | llvm::orc::LLJIT& Jit = *compat::getExecutionEngine(I); |
3208 | 3207 | llvm::orc::ExecutionSession& ES = Jit.getExecutionSession(); |
3209 | 3208 | JITDylib& DyLib = *Jit.getProcessSymbolsJITDylib().get(); |
3210 | 3209 |
|
3211 | | - llvm::orc::SymbolMap InjectedSymbols; |
3212 | | - auto& DL = compat::getExecutionEngine(I)->getDataLayout(); |
3213 | | - char GlobalPrefix = DL.getGlobalPrefix(); |
3214 | | - std::string tmp(linker_mangled_name); |
3215 | | - if (GlobalPrefix != '\0') { |
3216 | | - tmp = std::string(1, GlobalPrefix) + tmp; |
3217 | | - } |
3218 | | - auto Name = ES.intern(tmp); |
3219 | | - InjectedSymbols[Name] = |
3220 | | - ExecutorSymbolDef(ExecutorAddr(address), JITSymbolFlags::Exported); |
| 3210 | + llvm::orc::SymbolMap InjectedSymbols{ |
| 3211 | + {ES.intern(linker_mangled_name), ExecutorSymbolDef(ExecutorAddr(address), |
| 3212 | + JITSymbolFlags::Exported)} |
| 3213 | + }; |
3221 | 3214 |
|
3222 | 3215 | if (Error Err = DyLib.define(absoluteSymbols(InjectedSymbols))) { |
3223 | 3216 | logAllUnhandledErrors(std::move(Err), errs(), |
|
0 commit comments