summaryrefslogtreecommitdiffstats
path: root/include/llvm-c
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
commit1cf08fddc7413076dedad58dbb8d8d67e69a490f (patch)
treede2716f4caa6d2d7296465c0c0750b507a959648 /include/llvm-c
parentc0491ac8b6c24a7d0db8c0a60f76cfb1d66f84ab (diff)
downloadexternal_llvm-1cf08fddc7413076dedad58dbb8d8d67e69a490f.zip
external_llvm-1cf08fddc7413076dedad58dbb8d8d67e69a490f.tar.gz
external_llvm-1cf08fddc7413076dedad58dbb8d8d67e69a490f.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/llvm-c')
-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) */