aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorGordon Henriksen <gordonhenriksen@mac.com>2007-10-07 00:13:35 +0000
committerGordon Henriksen <gordonhenriksen@mac.com>2007-10-07 00:13:35 +0000
commit0a38ee31bfb08104eb6fc763b67ded44b01266f8 (patch)
treede2716f4caa6d2d7296465c0c0750b507a959648 /include
parent3ed72368453d39942c9a3e0f41242485d9f3cfdf (diff)
downloadexternal_llvm-0a38ee31bfb08104eb6fc763b67ded44b01266f8.zip
external_llvm-0a38ee31bfb08104eb6fc763b67ded44b01266f8.tar.gz
external_llvm-0a38ee31bfb08104eb6fc763b67ded44b01266f8.tar.bz2
C and Objective Caml bindings for PATypeHolder.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42713 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm-c/Core.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/llvm-c/Core.h b/include/llvm-c/Core.h
index d839e0c..ee1f69f 100644
--- a/include/llvm-c/Core.h
+++ b/include/llvm-c/Core.h
@@ -47,6 +47,7 @@ extern "C" {
/* Opaque types. */
typedef struct LLVMOpaqueModule *LLVMModuleRef;
typedef struct LLVMOpaqueType *LLVMTypeRef;
+typedef struct LLVMOpaqueTypeHandle *LLVMTypeHandleRef;
typedef struct LLVMOpaqueValue *LLVMValueRef;
typedef struct LLVMOpaqueBasicBlock *LLVMBasicBlockRef;
typedef struct LLVMOpaqueBuilder *LLVMBuilderRef;
@@ -204,6 +205,12 @@ LLVMTypeRef LLVMVoidType();
LLVMTypeRef LLVMLabelType();
LLVMTypeRef LLVMOpaqueType();
+/* Operations on type handles */
+LLVMTypeHandleRef LLVMCreateTypeHandle(LLVMTypeRef PotentiallyAbstractTy);
+void LLVMRefineType(LLVMTypeRef AbstractTy, LLVMTypeRef ConcreteTy);
+LLVMTypeRef LLVMResolveTypeHandle(LLVMTypeHandleRef TypeHandle);
+void LLVMDisposeTypeHandle(LLVMTypeHandleRef TypeHandle);
+
/*===-- Values ------------------------------------------------------------===*/
@@ -558,6 +565,16 @@ namespace llvm {
inline LLVMBuilderRef wrap(LLVMBuilder *B) {
return reinterpret_cast<LLVMBuilderRef>(B);
}
+
+ /* Opaque type handle conversions.
+ */
+ inline PATypeHolder *unwrap(LLVMTypeHandleRef B) {
+ return reinterpret_cast<PATypeHolder*>(B);
+ }
+
+ inline LLVMTypeHandleRef wrap(PATypeHolder *B) {
+ return reinterpret_cast<LLVMTypeHandleRef>(B);
+ }
}
#endif /* !defined(__cplusplus) */