diff options
author | Edward O'Callaghan <eocallaghan@auroraux.org> | 2009-08-18 00:24:36 +0000 |
---|---|---|
committer | Edward O'Callaghan <eocallaghan@auroraux.org> | 2009-08-18 00:24:36 +0000 |
commit | e1b80b6946183a167b566f674235177338469a26 (patch) | |
tree | abd34a6a8e6865d61134bcef1c43f39952014955 /bindings | |
parent | 25103a2617259e23c4736f0114cfd9a416dcbbf1 (diff) |
LLVM Ada language bindings. Credit to Rod Kay and the AuroraUX team.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79295 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'bindings')
25 files changed, 17089 insertions, 0 deletions
diff --git a/bindings/ada/analysis/llvm_analysis-binding.ads b/bindings/ada/analysis/llvm_analysis-binding.ads new file mode 100644 index 0000000000..c51a50353f --- /dev/null +++ b/bindings/ada/analysis/llvm_analysis-binding.ads @@ -0,0 +1,32 @@ +-- This file is generated by SWIG. Do *not* modify by hand. +-- + +with llvm; +with Interfaces.C.Strings; + + +package LLVM_Analysis.Binding is + + function LLVMVerifyModule + (M : in llvm.LLVMModuleRef; + Action : in LLVM_Analysis.LLVMVerifierFailureAction; + OutMessage : access Interfaces.C.Strings.chars_ptr) + return Interfaces.C.int; + + function LLVMVerifyFunction + (Fn : in llvm.LLVMValueRef; + Action : in LLVM_Analysis.LLVMVerifierFailureAction) + return Interfaces.C.int; + + procedure LLVMViewFunctionCFG (Fn : in llvm.LLVMValueRef); + + procedure LLVMViewFunctionCFGOnly (Fn : in llvm.LLVMValueRef); + +private + + pragma Import (C, LLVMVerifyModule, "Ada_LLVMVerifyModule"); + pragma Import (C, LLVMVerifyFunction, "Ada_LLVMVerifyFunction"); + pragma Import (C, LLVMViewFunctionCFG, "Ada_LLVMViewFunctionCFG"); + pragma Import (C, LLVMViewFunctionCFGOnly, "Ada_LLVMViewFunctionCFGOnly"); + +end LLVM_Analysis.Binding; diff --git a/bindings/ada/analysis/llvm_analysis.ads b/bindings/ada/analysis/llvm_analysis.ads new file mode 100644 index 0000000000..aa7b3f0e2e --- /dev/null +++ b/bindings/ada/analysis/llvm_analysis.ads @@ -0,0 +1,30 @@ +-- This file is generated by SWIG. Do *not* modify by hand. +-- + +with Interfaces.C; + + +package LLVM_Analysis is + + -- LLVMVerifierFailureAction + -- + type LLVMVerifierFailureAction is ( + LLVMAbortProcessAction, + LLVMPrintMessageAction, + LLVMReturnStatusAction); + + for LLVMVerifierFailureAction use + (LLVMAbortProcessAction => 0, + LLVMPrintMessageAction => 1, + LLVMReturnStatusAction => 2); + + pragma Convention (C, LLVMVerifierFailureAction); + + type LLVMVerifierFailureAction_array is + array (Interfaces.C.size_t range <>) + of aliased LLVM_Analysis.LLVMVerifierFailureAction; + + type LLVMVerifierFailureAction_view is access all + LLVM_Analysis.LLVMVerifierFailureAction; + +end LLVM_Analysis; diff --git a/bindings/ada/analysis/llvm_analysis_wrap.cxx b/bindings/ada/analysis/llvm_analysis_wrap.cxx new file mode 100644 index 0000000000..f2a8637343 --- /dev/null +++ b/bindings/ada/analysis/llvm_analysis_wrap.cxx @@ -0,0 +1,369 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 1.3.36 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + + +#ifdef __cplusplus +template<typename T> class SwigValueWrapper { + T *tt; +public: + SwigValueWrapper() : tt(0) { } + SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { } + SwigValueWrapper(const T& t) : tt(new T(t)) { } + ~SwigValueWrapper() { delete tt; } + SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; } + operator T&() const { return *tt; } + T *operator&() { return tt; } +private: + SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs); +}; + +template <typename T> T SwigValueInit() { + return T(); +} +#endif + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* exporting methods */ +#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + + + +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#if defined(_WIN32) || defined(__CYGWIN32__) +# define DllExport __declspec( dllexport ) +# define SWIGSTDCALL __stdcall +#else +# define DllExport +# define SWIGSTDCALL +#endif + + +#ifdef __cplusplus +# include <new> +#endif + + + + +/* Support for throwing Ada exceptions from C/C++ */ + +typedef enum +{ + SWIG_AdaException, + SWIG_AdaOutOfMemoryException, + SWIG_AdaIndexOutOfRangeException, + SWIG_AdaDivideByZeroException, + SWIG_AdaArgumentOutOfRangeException, + SWIG_AdaNullReferenceException +} SWIG_AdaExceptionCodes; + + +typedef void (SWIGSTDCALL* SWIG_AdaExceptionCallback_t)(const char *); + + +typedef struct +{ + SWIG_AdaExceptionCodes code; + SWIG_AdaExceptionCallback_t callback; +} + SWIG_AdaExceptions_t; + + +static +SWIG_AdaExceptions_t +SWIG_ada_exceptions[] = +{ + { SWIG_AdaException, NULL }, + { SWIG_AdaOutOfMemoryException, NULL }, + { SWIG_AdaIndexOutOfRangeException, NULL }, + { SWIG_AdaDivideByZeroException, NULL }, + { SWIG_AdaArgumentOutOfRangeException, NULL }, + { SWIG_AdaNullReferenceException, NULL } +}; + + +static +void +SWIG_AdaThrowException (SWIG_AdaExceptionCodes code, const char *msg) +{ + SWIG_AdaExceptionCallback_t callback = SWIG_ada_exceptions[SWIG_AdaException].callback; + if (code >=0 && (size_t)code < sizeof(SWIG_ada_exceptions)/sizeof(SWIG_AdaExceptions_t)) { + callback = SWIG_ada_exceptions[code].callback; + } + callback(msg); +} + + + +#ifdef __cplusplus +extern "C" +#endif + +DllExport void SWIGSTDCALL SWIGRegisterExceptionCallbacks_LLVM_Analysis (SWIG_AdaExceptionCallback_t systemException, + SWIG_AdaExceptionCallback_t outOfMemory, + SWIG_AdaExceptionCallback_t indexOutOfRange, + SWIG_AdaExceptionCallback_t divideByZero, + SWIG_AdaExceptionCallback_t argumentOutOfRange, + SWIG_AdaExceptionCallback_t nullReference) +{ + SWIG_ada_exceptions [SWIG_AdaException].callback = systemException; + SWIG_ada_exceptions [SWIG_AdaOutOfMemoryException].callback = outOfMemory; + SWIG_ada_exceptions [SWIG_AdaIndexOutOfRangeException].callback = indexOutOfRange; + SWIG_ada_exceptions [SWIG_AdaDivideByZeroException].callback = divideByZero; + SWIG_ada_exceptions [SWIG_AdaArgumentOutOfRangeException].callback = argumentOutOfRange; + SWIG_ada_exceptions [SWIG_AdaNullReferenceException].callback = nullReference; +} + + +/* Callback for returning strings to Ada without leaking memory */ + +typedef char * (SWIGSTDCALL* SWIG_AdaStringHelperCallback)(const char *); +static SWIG_AdaStringHelperCallback SWIG_ada_string_callback = NULL; + + + +/* probably obsolete ... +#ifdef __cplusplus +extern "C" +#endif +DllExport void SWIGSTDCALL SWIGRegisterStringCallback_LLVM_Analysis(SWIG_AdaStringHelperCallback callback) { + SWIG_ada_string_callback = callback; +} +*/ + + + +/* Contract support */ + +#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_AdaThrowException(SWIG_AdaArgumentOutOfRangeException, msg); return nullreturn; } else + + +#define protected public +#define private public + +#include "llvm-c/Analysis.h" +//#include "llvm-c/BitReader.h" +//#include "llvm-c/BitWriter.h" +//#include "llvm-c/Core.h" +//#include "llvm-c/ExecutionEngine.h" +//#include "llvm-c/LinkTimeOptimizer.h" +//#include "llvm-c/lto.h" +//#include "llvm-c/Target.h" + + + +// struct LLVMCtxt; + + +#undef protected +#undef private +#ifdef __cplusplus +extern "C" { +#endif +DllExport int SWIGSTDCALL Ada_LLVMVerifyModule ( + void * jarg1 + , + + int jarg2 + , + + void * jarg3 + ) +{ + int jresult ; + LLVMModuleRef arg1 = (LLVMModuleRef) 0 ; + LLVMVerifierFailureAction arg2 ; + char **arg3 = (char **) 0 ; + int result; + + arg1 = (LLVMModuleRef)jarg1; + + arg2 = (LLVMVerifierFailureAction) jarg2; + + arg3 = (char **)jarg3; + + result = (int)LLVMVerifyModule(arg1,arg2,arg3); + jresult = result; + + + + return jresult; + +} + + + +DllExport int SWIGSTDCALL Ada_LLVMVerifyFunction ( + void * jarg1 + , + + int jarg2 + ) +{ + int jresult ; + LLVMValueRef arg1 = (LLVMValueRef) 0 ; + LLVMVerifierFailureAction arg2 ; + int result; + + arg1 = (LLVMValueRef)jarg1; + + arg2 = (LLVMVerifierFailureAction) jarg2; + + result = (int)LLVMVerifyFunction(arg1,arg2); + jresult = result; + + + + return jresult; + +} + + + +DllExport void SWIGSTDCALL Ada_LLVMViewFunctionCFG ( + void * jarg1 + ) +{ + LLVMValueRef arg1 = (LLVMValueRef) 0 ; + + arg1 = (LLVMValueRef)jarg1; + + LLVMViewFunctionCFG(arg1); + + +} + + + +DllExport void SWIGSTDCALL Ada_LLVMViewFunctionCFGOnly ( + void * jarg1 + ) +{ + LLVMValueRef arg1 = (LLVMValueRef) 0 ; + + arg1 = (LLVMValueRef)jarg1; + + LLVMViewFunctionCFGOnly(arg1); + + +} + + + +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +#ifdef __cplusplus +} +#endif + diff --git a/bindings/ada/bitreader/llvm_bit_reader-binding.ads b/bindings/ada/bitreader/llvm_bit_reader-binding.ads new file mode 100644 index 0000000000..4fcdb4a84f --- /dev/null +++ b/bindings/ada/bitreader/llvm_bit_reader-binding.ads @@ -0,0 +1,52 @@ +-- This file is generated by SWIG. Do *not* modify by hand. +-- + +with llvm; +with Interfaces.C.Strings; + + +package LLVM_bit_Reader.Binding is + + function LLVMParseBitcode + (MemBuf : in llvm.LLVMMemoryBufferRef; + OutModule : access llvm.LLVMModuleRef; + OutMessage : access Interfaces.C.Strings.chars_ptr) + return Interfaces.C.int; + + function LLVMParseBitcodeInContext + (MemBuf : in llvm.LLVMMemoryBufferRef; + ContextRef : in llvm.LLVMContextRef; + OutModule : access llvm.LLVMModuleRef; + OutMessage : access Interfaces.C.Strings.chars_ptr) + return Interfaces.C.int; + + function LLVMGetBitcodeModuleProvider + (MemBuf : in llvm.LLVMMemoryBufferRef; + OutMP : access llvm.LLVMModuleProviderRef; + OutMessage : access Interfaces.C.Strings.chars_ptr) + return Interfaces.C.int; + + function LLVMGetBitcodeModuleProviderInContext + (MemBuf : in llvm.LLVMMemoryBufferRef; + ContextRef : in llvm.LLVMContextRef; + OutMP : access llvm.LLVMModuleProviderRef; + OutMessage : access Interfaces.C.Strings.chars_ptr) + return Interfaces.C.int; + +private + + pragma Import (C, LLVMParseBitcode, "Ada_LLVMParseBitcode"); + pragma Import + (C, + LLVMParseBitcodeInContext, + "Ada_LLVMParseBitcodeInContext"); + pragma Import + (C, + LLVMGetBitcodeModuleProvider, + "Ada_LLVMGetBitcodeModuleProvider"); + pragma Import + (C, + LLVMGetBitcodeModuleProviderInContext, + "Ada_LLVMGetBitcodeModuleProviderInContext"); + +end LLVM_bit_Reader.Binding; diff --git a/bindings/ada/bitreader/llvm_bit_reader.ads b/bindings/ada/bitreader/llvm_bit_reader.ads new file mode 100644 index 0000000000..7579dea281 --- /dev/null +++ b/bindings/ada/bitreader/llvm_bit_reader.ads @@ -0,0 +1,6 @@ +-- This file is generated by SWIG. Do *not* modify by hand. +-- + +package LLVM_bit_Reader is + +end LLVM_bit_Reader; diff --git a/bindings/ada/bitreader/llvm_bitreader_wrap.cxx b/bindings/ada/bitreader/llvm_bitreader_wrap.cxx new file mode 100644 index 0000000000..b7ecbed355 --- /dev/null +++ b/bindings/ada/bitreader/llvm_bitreader_wrap.cxx @@ -0,0 +1,423 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 1.3.36 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + + +#ifdef __cplusplus +template<typename T> class SwigValueWrapper { + T *tt; +public: + SwigValueWrapper() : tt(0) { } + SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { } + SwigValueWrapper(const T& t) : tt(new T(t)) { } + ~SwigValueWrapper() { delete tt; } + SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; } + operator T&() const { return *tt; } + T *operator&() { return tt; } +private: + SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs); +}; + +template <typename T> T SwigValueInit() { + return T(); +} +#endif + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* exporting methods */ +#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + + + +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#if defined(_WIN32) || defined(__CYGWIN32__) +# define DllExport __declspec( dllexport ) +# define SWIGSTDCALL __stdcall +#else +# define DllExport +# define SWIGSTDCALL +#endif + + +#ifdef __cplusplus +# include <new> +#endif + + + + +/* Support for throwing Ada exceptions from C/C++ */ + +typedef enum +{ + SWIG_AdaException, + SWIG_AdaOutOfMemoryException, + SWIG_AdaIndexOutOfRangeException, + SWIG_AdaDivideByZeroException, + SWIG_AdaArgumentOutOfRangeException, + SWIG_AdaNullReferenceException +} SWIG_AdaExceptionCodes; + + +typedef void (SWIGSTDCALL* SWIG_AdaExceptionCallback_t)(const char *); + + +typedef struct +{ + SWIG_AdaExceptionCodes code; + SWIG_AdaExceptionCallback_t callback; +} + SWIG_AdaExceptions_t; + + +static +SWIG_AdaExceptions_t +SWIG_ada_exceptions[] = +{ + { SWIG_AdaException, NULL }, + { SWIG_AdaOutOfMemoryException, NULL }, + { SWIG_AdaIndexOutOfRangeException, NULL }, + { SWIG_AdaDivideByZeroException, NULL }, + { SWIG_AdaArgumentOutOfRangeException, NULL }, + { SWIG_AdaNullReferenceException, NULL } +}; + + +static +void +SWIG_AdaThrowException (SWIG_AdaExceptionCodes code, const char *msg) +{ + SWIG_AdaExceptionCallback_t callback = SWIG_ada_exceptions[SWIG_AdaException].callback; + if (code >=0 && (size_t)code < sizeof(SWIG_ada_exceptions)/sizeof(SWIG_AdaExceptions_t)) { + callback = SWIG_ada_exceptions[code].callback; + } + callback(msg); +} + + + +#ifdef __cplusplus +extern "C" +#endif + +DllExport void SWIGSTDCALL SWIGRegisterExceptionCallbacks_LLVM_bit_Reader (SWIG_AdaExceptionCallback_t systemException, + SWIG_AdaExceptionCallback_t outOfMemory, + SWIG_AdaExceptionCallback_t indexOutOfRange, + SWIG_AdaExceptionCallback_t divideByZero, + SWIG_AdaExceptionCallback_t argumentOutOfRange, + SWIG_AdaExceptionCallback_t nullReference) +{ + SWIG_ada_exceptions [SWIG_AdaException].callback = systemException; + SWIG_ada_exceptions [SWIG_AdaOutOfMemoryException].callback = outOfMemory; + SWIG_ada_exceptions [SWIG_AdaIndexOutOfRangeException].callback = indexOutOfRange; + SWIG_ada_exceptions [SWIG_AdaDivideByZeroException].callback = divideByZero; + SWIG_ada_exceptions [SWIG_AdaArgumentOutOfRangeException].callback = argumentOutOfRange; + SWIG_ada_exceptions [SWIG_AdaNullReferenceException].callback = nullReference; +} + + +/* Callback for returning strings to Ada without leaking memory */ + +typedef char * (SWIGSTDCALL* SWIG_AdaStringHelperCallback)(const char *); +static SWIG_AdaStringHelperCallback SWIG_ada_string_callback = NULL; + + + +/* probably obsolete ... +#ifdef __cplusplus +extern "C" +#endif +DllExport void SWIGSTDCALL SWIGRegisterStringCallback_LLVM_bit_Reader(SWIG_AdaStringHelperCallback callback) { + SWIG_ada_string_callback = callback; +} +*/ + + + +/* Contract support */ + +#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_AdaThrowException(SWIG_AdaArgumentOutOfRangeException, msg); return nullreturn; } else + + +#define protected public +#define private public + +//#include "llvm-c/Analysis.h" +#include "llvm-c/BitReader.h" +//#include "llvm-c/BitWriter.h" +//#include "llvm-c/Core.h" +//#include "llvm-c/ExecutionEngine.h" +//#include "llvm-c/LinkTimeOptimizer.h" +//#include "llvm-c/lto.h" +//#include "llvm-c/Target.h" + + + +// struct LLVMCtxt; + + +#undef protected +#undef private +#ifdef __cplusplus +extern "C" { +#endif +DllExport int SWIGSTDCALL Ada_LLVMParseBitcode ( + void * jarg1 + , + + void * jarg2 + , + + void * jarg3 + ) +{ + int jresult ; + LLVMMemoryBufferRef arg1 = (LLVMMemoryBufferRef) 0 ; + LLVMModuleRef *arg2 = (LLVMModuleRef *) 0 ; + char **arg3 = (char **) 0 ; + int result; + + arg1 = (LLVMMemoryBufferRef)jarg1; + + arg2 = (LLVMModuleRef *)jarg2; + + arg3 = (char **)jarg3; + + result = (int)LLVMParseBitcode(arg1,arg2,arg3); + jresult = result; + + + + return jresult; + +} + + + +DllExport int SWIGSTDCALL Ada_LLVMParseBitcodeInContext ( + void * jarg1 + , + + void * jarg2 + , + + void * jarg3 + , + + void * jarg4 + ) +{ + int jresult ; + LLVMMemoryBufferRef arg1 = (LLVMMemoryBufferRef) 0 ; + LLVMContextRef arg2 = (LLVMContextRef) 0 ; + LLVMModuleRef *arg3 = (LLVMModuleRef *) 0 ; + char **arg4 = (char **) 0 ; + int result; + + arg1 = (LLVMMemoryBufferRef)jarg1; + + arg2 = (LLVMContextRef)jarg2; + + arg3 = (LLVMModuleRef *)jarg3; + + arg4 = (char **)jarg4; + + result = (int)LLVMParseBitcodeInContext(arg1,arg2,arg3,arg4); + jresult = result; + + + + return jresult; + +} + + + +DllExport int SWIGSTDCALL Ada_LLVMGetBitcodeModuleProvider ( + void * jarg1 + , + + void * jarg2 + , + + void * jarg3 + ) +{ + int jresult ; + LLVMMemoryBufferRef arg1 = (LLVMMemoryBufferRef) 0 ; + LLVMModuleProviderRef *arg2 = (LLVMModuleProviderRef *) 0 ; + char **arg3 = (char **) 0 ; + int result; + + arg1 = (LLVMMemoryBufferRef)jarg1; + + arg2 = (LLVMModuleProviderRef *)jarg2; + + arg3 = (char **)jarg3; + + result = (int)LLVMGetBitcodeModuleProvider(arg1,arg2,arg3); + jresult = result; + + + + return jresult; + +} + + + +DllExport int SWIGSTDCALL Ada_LLVMGetBitcodeModuleProviderInContext ( + void * jarg1 + , + + void * jarg2 + , + + void * jarg3 + , + + void * jarg4 + ) +{ + int jresult ; + LLVMMemoryBufferRef arg1 = (LLVMMemoryBufferRef) 0 ; + LLVMContextRef arg2 = (LLVMContextRef) 0 ; + LLVMModuleProviderRef *arg3 = (LLVMModuleProviderRef *) 0 ; + char **arg4 = (char **) 0 ; + int result; + + arg1 = (LLVMMemoryBufferRef)jarg1; + + arg2 = (LLVMContextRef)jarg2; + + arg3 = (LLVMModuleProviderRef *)jarg3; + + arg4 = (char **)jarg4; + + result = (int)LLVMGetBitcodeModuleProviderInContext(arg1,arg2,arg3,arg4); + jresult = result; + + + + return jresult; + +} + + + +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +#ifdef __cplusplus +} +#endif + diff --git a/bindings/ada/bitwriter/llvm_bit_writer-binding.ads b/bindings/ada/bitwriter/llvm_bit_writer-binding.ads new file mode 100644 index 0000000000..b5542df0e0 --- /dev/null +++ b/bindings/ada/bitwriter/llvm_bit_writer-binding.ads @@ -0,0 +1,28 @@ +-- This file |