From b958ba3761e12f99b89ad4feb33be95137f526c0 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sun, 6 May 2007 05:21:42 +0000 Subject: bitcodify, remove eh cruft git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36844 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/llvm2cpp/llvm2cpp.cpp | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'tools/llvm2cpp/llvm2cpp.cpp') diff --git a/tools/llvm2cpp/llvm2cpp.cpp b/tools/llvm2cpp/llvm2cpp.cpp index fe9504e567..3424482fda 100644 --- a/tools/llvm2cpp/llvm2cpp.cpp +++ b/tools/llvm2cpp/llvm2cpp.cpp @@ -17,19 +17,22 @@ //===------------------------------------------------------------------------=== #include "llvm/Module.h" +#include "llvm/Bitcode/ReaderWriter.h" #include "llvm/Bytecode/Reader.h" #include "llvm/Analysis/Verifier.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/ManagedStatic.h" +#include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/SystemUtils.h" #include "llvm/System/Signals.h" #include "CppWriter.h" #include #include #include - using namespace llvm; +cl::opt Bitcode("bitcode"); + static cl::opt InputFilename(cl::Positional, cl::desc(""), cl::init("-")); @@ -49,9 +52,20 @@ int main(int argc, char **argv) { int exitCode = 0; std::ostream *Out = 0; std::string ErrorMessage; - std::auto_ptr M(ParseBytecodeFile(InputFilename, - Compressor::decompressToNewBuffer, - &ErrorMessage)); + + std::auto_ptr M; + if (Bitcode) { + std::auto_ptr Buffer( + MemoryBuffer::getFileOrSTDIN(&InputFilename[0], InputFilename.size())); + if (Buffer.get()) + M.reset(ParseBitcodeFile(Buffer.get(), &ErrorMessage)); + else + ErrorMessage = "Error reading file '" + InputFilename + "'"; + } else { + M.reset(ParseBytecodeFile(InputFilename, + Compressor::decompressToNewBuffer, + &ErrorMessage)); + } if (M.get() == 0) { std::cerr << argv[0] << ": "; if (ErrorMessage.size()) -- cgit v1.2.3-18-g5258