diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/VMCore/Core.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/VMCore/Core.cpp b/lib/VMCore/Core.cpp index 10b226cc7c..15a54b332a 100644 --- a/lib/VMCore/Core.cpp +++ b/lib/VMCore/Core.cpp @@ -177,6 +177,24 @@ LLVMTypeRef LLVMOpaqueType() { return wrap(llvm::OpaqueType::get()); } +/* Operations on type handles */ + +LLVMTypeHandleRef LLVMCreateTypeHandle(LLVMTypeRef PotentiallyAbstractTy) { + return wrap(new PATypeHolder(unwrap(PotentiallyAbstractTy))); +} + +void LLVMDisposeTypeHandle(LLVMTypeHandleRef TypeHandle) { + delete unwrap(TypeHandle); +} + +LLVMTypeRef LLVMResolveTypeHandle(LLVMTypeHandleRef TypeHandle) { + return wrap(unwrap(TypeHandle)->get()); +} + +void LLVMRefineType(LLVMTypeRef AbstractTy, LLVMTypeRef ConcreteTy) { + unwrap<DerivedType>(AbstractTy)->refineAbstractTypeTo(unwrap(ConcreteTy)); +} + /*===-- Operations on values ----------------------------------------------===*/ |