From 736969f9fe49b17174c6e06fbb7b1a8331ca94b2 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Tue, 15 Mar 2011 14:57:26 -0700 Subject: rustc: Add support for LLVM memory buffer creation via a wrapper function --- src/llvmext/RustWrapper.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/llvmext/RustWrapper.cpp (limited to 'src/llvmext/RustWrapper.cpp') diff --git a/src/llvmext/RustWrapper.cpp b/src/llvmext/RustWrapper.cpp new file mode 100644 index 00000000..a604e4c2 --- /dev/null +++ b/src/llvmext/RustWrapper.cpp @@ -0,0 +1,31 @@ +//===- RustWrapper.cpp - Rust wrapper for core functions --------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines alternate interfaces to core functions that are more +// readily callable by Rust's FFI. +// +//===----------------------------------------------------------------------===// + +#include "llvm-c/Core.h" +#include "llvm-c/Object.h" +#include + +static char *LLVMRustError; + +extern "C" LLVMMemoryBufferRef +LLVMRustCreateMemoryBufferWithContentsOfFile(const char *Path) { + LLVMMemoryBufferRef MemBuf = NULL; + LLVMCreateMemoryBufferWithContentsOfFile(Path, &MemBuf, &LLVMRustError); + return MemBuf; +} + +extern "C" const char *LLVMRustGetLastError(void) { + return LLVMRustError; +} + -- cgit v1.2.3