Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 //===---- IRReader.cpp - Reader for LLVM IR files -------------------------===// | 1 //===---- IRReader.cpp - Reader for LLVM IR files -------------------------===// |
| 2 // | 2 // |
| 3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
| 4 // | 4 // |
| 5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
| 6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
| 7 // | 7 // |
| 8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
| 9 | 9 |
| 10 #include "llvm/IRReader/IRReader.h" | 10 #include "llvm/IRReader/IRReader.h" |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 101 // @LOCALMOD-BEGIN | 101 // @LOCALMOD-BEGIN |
| 102 Module *llvm::NaClParseIR(MemoryBuffer *Buffer, | 102 Module *llvm::NaClParseIR(MemoryBuffer *Buffer, |
| 103 NaClFileFormat Format, | 103 NaClFileFormat Format, |
| 104 SMDiagnostic &Err, | 104 SMDiagnostic &Err, |
| 105 LLVMContext &Context) { | 105 LLVMContext &Context) { |
| 106 NamedRegionTimer T(TimeIRParsingName, TimeIRParsingGroupName, | 106 NamedRegionTimer T(TimeIRParsingName, TimeIRParsingGroupName, |
| 107 TimePassesIsEnabled); | 107 TimePassesIsEnabled); |
| 108 if ((Format == PNaClFormat) && | 108 if ((Format == PNaClFormat) && |
| 109 isNaClBitcode((const unsigned char *)Buffer->getBufferStart(), | 109 isNaClBitcode((const unsigned char *)Buffer->getBufferStart(), |
| 110 (const unsigned char *)Buffer->getBufferEnd())) { | 110 (const unsigned char *)Buffer->getBufferEnd())) { |
| 111 std::string ErrMsg; | 111 ErrorOr<Module *> MOrErr = |
|
jvoung (off chromium)
2014/12/01 23:23:50
"ModuleOrError" to be consistent with ParseIR() ?
JF
2014/12/02 00:49:04
Upstream uses MOrErr, so I'd keep that.
Karl
2014/12/03 18:32:10
Since our local version uses ModuleOrError, will m
| |
| 112 Module *M = NaClParseBitcodeFile(Buffer, Context, &ErrMsg); | 112 NaClParseBitcodeFile(Buffer, Context, /*VerboseErrors=*/false); |
|
jvoung (off chromium)
2014/12/01 23:23:50
how do you decide between setting VerboseErrors to
Karl
2014/12/03 18:32:10
Good point. Adding as argument so that calling too
| |
| 113 if (M == 0) | 113 if (std::error_code EC = MOrErr.getError()) |
| 114 Err = SMDiagnostic(Buffer->getBufferIdentifier(), SourceMgr::DK_Error, | 114 Err = SMDiagnostic(Buffer->getBufferIdentifier(), SourceMgr::DK_Error, |
| 115 ErrMsg); | 115 EC.message()); |
| 116 // ParseBitcodeFile does not take ownership of the Buffer. | 116 // ParseBitcodeFile does not take ownership of the Buffer. |
| 117 return M; | 117 return MOrErr.get(); |
| 118 } else if (Format == LLVMFormat) { | 118 } else if (Format == LLVMFormat) { |
| 119 if (isBitcode((const unsigned char *)Buffer->getBufferStart(), | 119 if (isBitcode((const unsigned char *)Buffer->getBufferStart(), |
| 120 (const unsigned char *)Buffer->getBufferEnd())) { | 120 (const unsigned char *)Buffer->getBufferEnd())) { |
| 121 ErrorOr<Module *> MOrErr = parseBitcodeFile(Buffer, Context); | 121 ErrorOr<Module *> MOrErr = parseBitcodeFile(Buffer, Context); |
| 122 if (std::error_code EC = MOrErr.getError()) | 122 if (std::error_code EC = MOrErr.getError()) |
| 123 Err = SMDiagnostic(Buffer->getBufferIdentifier(), SourceMgr::DK_Error, | 123 Err = SMDiagnostic(Buffer->getBufferIdentifier(), SourceMgr::DK_Error, |
| 124 EC.message()); | 124 EC.message()); |
| 125 // ParseBitcodeFile does not take ownership of the Buffer. | 125 // ParseBitcodeFile does not take ownership of the Buffer. |
| 126 return MOrErr.get(); | 126 return MOrErr.get(); |
| 127 } | 127 } |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 171 Diag.print(nullptr, os, false); | 171 Diag.print(nullptr, os, false); |
| 172 os.flush(); | 172 os.flush(); |
| 173 | 173 |
| 174 *OutMessage = strdup(buf.c_str()); | 174 *OutMessage = strdup(buf.c_str()); |
| 175 } | 175 } |
| 176 return 1; | 176 return 1; |
| 177 } | 177 } |
| 178 | 178 |
| 179 return 0; | 179 return 0; |
| 180 } | 180 } |
| OLD | NEW |