mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
Preserve module source information in the ModuleID
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5836 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -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<Module*> &Objects,
|
||||
std::string *ErrorStr) {
|
||||
if (Length < 8 || memcmp(Buffer, "!<arch>\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<Module*> &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);
|
||||
|
Reference in New Issue
Block a user