From b672b5607f852a3351ac785ca41a43af8dd4b742 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 22 Apr 2003 18:02:52 +0000 Subject: Preserve module source information in the ModuleID llvm-svn: 5836 --- llvm/lib/Bytecode/Reader/ArchiveReader.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'llvm/lib/Bytecode/Reader/ArchiveReader.cpp') diff --git a/llvm/lib/Bytecode/Reader/ArchiveReader.cpp b/llvm/lib/Bytecode/Reader/ArchiveReader.cpp index b6c389523f4..afa2c63d050 100644 --- a/llvm/lib/Bytecode/Reader/ArchiveReader.cpp +++ b/llvm/lib/Bytecode/Reader/ArchiveReader.cpp @@ -82,7 +82,8 @@ static bool ParseLongFilenameSection(unsigned char *Buffer, unsigned Size, } -static bool ReadArchiveBuffer(unsigned char *Buffer, unsigned Length, +static bool ReadArchiveBuffer(const std::string &Filename, + unsigned char *Buffer, unsigned Length, std::vector &Objects, std::string *ErrorStr) { if (Length < 8 || memcmp(Buffer, "!\n", 8)) @@ -107,7 +108,8 @@ static bool ReadArchiveBuffer(unsigned char *Buffer, unsigned Length, return true; break; case UserObject: { - Module *M = ParseBytecodeBuffer(Buffer+sizeof(ar_hdr), Size, ErrorStr); + Module *M = ParseBytecodeBuffer(Buffer+sizeof(ar_hdr), Size, + Filename+":somefile", ErrorStr); if (!M) return true; Objects.push_back(M); break; @@ -151,7 +153,7 @@ bool ReadArchiveFile(const std::string &Filename, std::vector &Objects, return Error(ErrorStr, "Error mmapping file!"); // Parse the archive files we mmap'ped in - bool Result = ReadArchiveBuffer(Buffer, Length, Objects, ErrorStr); + bool Result = ReadArchiveBuffer(Filename, Buffer, Length, Objects, ErrorStr); // Unmmap the archive... munmap((char*)Buffer, Length); -- cgit v1.2.3