summaryrefslogtreecommitdiffstats
path: root/clang/lib/Serialization/ASTReader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Serialization/ASTReader.cpp')
-rw-r--r--clang/lib/Serialization/ASTReader.cpp34
1 files changed, 6 insertions, 28 deletions
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp
index dd73bbae378..0ee2b2b2215 100644
--- a/clang/lib/Serialization/ASTReader.cpp
+++ b/clang/lib/Serialization/ASTReader.cpp
@@ -46,8 +46,6 @@
#include "llvm/ADT/Hashing.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Bitcode/BitstreamReader.h"
-#include "llvm/Object/COFF.h"
-#include "llvm/Object/ObjectFile.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/MemoryBuffer.h"
@@ -634,27 +632,6 @@ void PCHValidator::ReadCounter(const ModuleFile &M, unsigned Value) {
// AST reader implementation
//===----------------------------------------------------------------------===//
-void ASTReader::InitStreamFileWithModule(llvm::MemoryBufferRef Buffer,
- llvm::BitstreamReader &StreamFile) {
- if (auto OF = llvm::object::ObjectFile::createObjectFile(Buffer)) {
- bool IsCOFF = isa<llvm::object::COFFObjectFile>(OF.get().get());
- // Find the clang AST section in the container.
- for (auto &Section : OF->get()->sections()) {
- StringRef Name;
- Section.getName(Name);
- if ((!IsCOFF && Name == "__clangast") ||
- ( IsCOFF && Name == "clangast")) {
- StringRef Buf;
- Section.getContents(Buf);
- return StreamFile.init((const unsigned char*)Buf.begin(),
- (const unsigned char*)Buf.end());
- }
- }
- }
- StreamFile.init((const unsigned char *)Buffer.getBufferStart(),
- (const unsigned char *)Buffer.getBufferEnd());
-}
-
void ASTReader::setDeserializationListener(ASTDeserializationListener *Listener,
bool TakeOwnership) {
DeserializationListener = Listener;
@@ -3906,10 +3883,9 @@ ASTReader::ReadASTCore(StringRef FileName,
ModuleFile &F = *M;
BitstreamCursor &Stream = F.Stream;
- InitStreamFileWithModule(F.Buffer->getMemBufferRef(), F.StreamFile);
Stream.init(&F.StreamFile);
- F.SizeInBits = F.StreamFile.getBitcodeBytes().getExtent() * 8;
-
+ F.SizeInBits = F.Buffer->getBufferSize() * 8;
+
// Sniff for the signature.
if (Stream.Read(8) != 'C' ||
Stream.Read(8) != 'P' ||
@@ -4198,7 +4174,8 @@ std::string ASTReader::getOriginalSourceFile(const std::string &ASTFileName,
// Initialize the stream
llvm::BitstreamReader StreamFile;
- InitStreamFileWithModule((*Buffer)->getMemBufferRef(), StreamFile);
+ StreamFile.init((const unsigned char *)(*Buffer)->getBufferStart(),
+ (const unsigned char *)(*Buffer)->getBufferEnd());
BitstreamCursor Stream(StreamFile);
// Sniff for the signature.
@@ -4293,7 +4270,8 @@ bool ASTReader::readASTFileControlBlock(StringRef Filename,
// Initialize the stream
llvm::BitstreamReader StreamFile;
- InitStreamFileWithModule((*Buffer)->getMemBufferRef(), StreamFile);
+ StreamFile.init((const unsigned char *)(*Buffer)->getBufferStart(),
+ (const unsigned char *)(*Buffer)->getBufferEnd());
BitstreamCursor Stream(StreamFile);
// Sniff for the signature.
OpenPOWER on IntegriCloud