//===-- BitReader.cpp -----------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file was developed by Gordon Henriksen and is distributed under the // University of Illinois Open Source License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #include "llvm-c/BitReader.h" #include "llvm/Bitcode/ReaderWriter.h" #include "llvm/Support/MemoryBuffer.h" #include using namespace llvm; int LLVMReadBitcodeFromFile(const char *Path, LLVMModuleRef *OutModule, char **OutMessage) { std::string Message; MemoryBuffer *buf = MemoryBuffer::getFile(Path, strlen(Path), &Message); if (!buf) { if (!OutMessage) *OutMessage = strdup(Message.c_str()); return 1; } *OutModule = wrap(ParseBitcodeFile(buf, &Message)); if (!*OutModule) { if (OutMessage) *OutMessage = strdup(Message.c_str()); return 1; } return 0; } void LLVMDisposeBitcodeReaderMessage(char *Message) { if (Message) free(Message); }