mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-29 03:27:44 +00:00
34 lines
1.0 KiB
C++
34 lines
1.0 KiB
C++
//===- 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 <cstdlib>
|
|
|
|
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;
|
|
}
|
|
|
|
LLVMOpaqueObjectFile* (*RustHackToFetchObjectO)(LLVMOpaqueMemoryBuffer*)
|
|
= LLVMCreateObjectFile;
|