|
11 | 11 | #include "llvm/SandboxIR/BasicBlock.h" |
12 | 12 | #include "llvm/SandboxIR/Context.h" |
13 | 13 | #include "llvm/SandboxIR/Function.h" |
| 14 | +#include "llvm/Support/Compiler.h" |
14 | 15 |
|
15 | 16 | namespace llvm::sandboxir { |
16 | 17 |
|
@@ -301,6 +302,27 @@ template class GlobalWithNodeAPI<GlobalVariable, llvm::GlobalVariable, |
301 | 302 | template class GlobalWithNodeAPI<GlobalAlias, llvm::GlobalAlias, GlobalValue, |
302 | 303 | llvm::GlobalValue>; |
303 | 304 |
|
| 305 | +#ifdef _MSC_VER |
| 306 | +// These are needed for SandboxIRTest when building with LLVM_BUILD_LLVM_DYLIB |
| 307 | +template LLVM_EXPORT_TEMPLATE GlobalIFunc & |
| 308 | +GlobalWithNodeAPI<GlobalIFunc, llvm::GlobalIFunc, GlobalObject, |
| 309 | + llvm::GlobalObject>::LLVMGVToGV::operator()(llvm::GlobalIFunc |
| 310 | + &LLVMGV) |
| 311 | + const; |
| 312 | +template LLVM_EXPORT_TEMPLATE Function & |
| 313 | +GlobalWithNodeAPI<Function, llvm::Function, GlobalObject, llvm::GlobalObject>:: |
| 314 | + LLVMGVToGV::operator()(llvm::Function &LLVMGV) const; |
| 315 | + |
| 316 | +template LLVM_EXPORT_TEMPLATE GlobalVariable &GlobalWithNodeAPI< |
| 317 | + GlobalVariable, llvm::GlobalVariable, GlobalObject, |
| 318 | + llvm::GlobalObject>::LLVMGVToGV::operator()(llvm::GlobalVariable &LLVMGV) |
| 319 | + const; |
| 320 | +template LLVM_EXPORT_TEMPLATE GlobalAlias & |
| 321 | +GlobalWithNodeAPI<GlobalAlias, llvm::GlobalAlias, GlobalValue, |
| 322 | + llvm::GlobalValue>::LLVMGVToGV::operator()(llvm::GlobalAlias |
| 323 | + &LLVMGV) const; |
| 324 | +#endif |
| 325 | + |
304 | 326 | void GlobalIFunc::setResolver(Constant *Resolver) { |
305 | 327 | Ctx.getTracker() |
306 | 328 | .emplaceIfTracking< |
|
0 commit comments