mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Reverted back to revision 1.11. The previous fix doesn't really fix
anything; it just causes the bug to go dormant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10585 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
056063e264
commit
9059158b56
@ -122,17 +122,8 @@ static bool ReadArchiveBuffer(const std::string &ArchiveName,
|
|||||||
while (endp[-1] == ' ')
|
while (endp[-1] == ' ')
|
||||||
--endp;
|
--endp;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// We now have the beginning and the end of the object name.
|
|
||||||
// Convert this into a dynamically allocated std::string to pass
|
|
||||||
// to the routines that create the Module object. We do this
|
|
||||||
// (I think) because the created Module object will outlive this function,
|
|
||||||
// but statically declared std::string's won't.
|
|
||||||
//
|
|
||||||
std::string MemberName (startp, endp);
|
std::string MemberName (startp, endp);
|
||||||
std::string * FullMemberName;
|
std::string FullMemberName = ArchiveName + "(" + MemberName + ")";
|
||||||
FullMemberName = new std::string (ArchiveName + "(" + MemberName + ")");
|
|
||||||
|
|
||||||
switch (getObjectType(Hdr, MemberData, MemberSize)) {
|
switch (getObjectType(Hdr, MemberData, MemberSize)) {
|
||||||
case SVR4LongFilename:
|
case SVR4LongFilename:
|
||||||
@ -142,7 +133,7 @@ static bool ReadArchiveBuffer(const std::string &ArchiveName,
|
|||||||
break;
|
break;
|
||||||
case UserObject: {
|
case UserObject: {
|
||||||
Module *M = ParseBytecodeBuffer(MemberData, MemberSize,
|
Module *M = ParseBytecodeBuffer(MemberData, MemberSize,
|
||||||
*(FullMemberName), ErrorStr);
|
FullMemberName, ErrorStr);
|
||||||
if (!M) return true;
|
if (!M) return true;
|
||||||
Objects.push_back(M);
|
Objects.push_back(M);
|
||||||
break;
|
break;
|
||||||
@ -153,7 +144,7 @@ static bool ReadArchiveBuffer(const std::string &ArchiveName,
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
std::cerr << "ReadArchiveBuffer: WARNING: Skipping unknown file: "
|
std::cerr << "ReadArchiveBuffer: WARNING: Skipping unknown file: "
|
||||||
<< *(FullMemberName) << "\n";
|
<< FullMemberName << "\n";
|
||||||
break; // Just ignore unknown files.
|
break; // Just ignore unknown files.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,17 +122,8 @@ static bool ReadArchiveBuffer(const std::string &ArchiveName,
|
|||||||
while (endp[-1] == ' ')
|
while (endp[-1] == ' ')
|
||||||
--endp;
|
--endp;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// We now have the beginning and the end of the object name.
|
|
||||||
// Convert this into a dynamically allocated std::string to pass
|
|
||||||
// to the routines that create the Module object. We do this
|
|
||||||
// (I think) because the created Module object will outlive this function,
|
|
||||||
// but statically declared std::string's won't.
|
|
||||||
//
|
|
||||||
std::string MemberName (startp, endp);
|
std::string MemberName (startp, endp);
|
||||||
std::string * FullMemberName;
|
std::string FullMemberName = ArchiveName + "(" + MemberName + ")";
|
||||||
FullMemberName = new std::string (ArchiveName + "(" + MemberName + ")");
|
|
||||||
|
|
||||||
switch (getObjectType(Hdr, MemberData, MemberSize)) {
|
switch (getObjectType(Hdr, MemberData, MemberSize)) {
|
||||||
case SVR4LongFilename:
|
case SVR4LongFilename:
|
||||||
@ -142,7 +133,7 @@ static bool ReadArchiveBuffer(const std::string &ArchiveName,
|
|||||||
break;
|
break;
|
||||||
case UserObject: {
|
case UserObject: {
|
||||||
Module *M = ParseBytecodeBuffer(MemberData, MemberSize,
|
Module *M = ParseBytecodeBuffer(MemberData, MemberSize,
|
||||||
*(FullMemberName), ErrorStr);
|
FullMemberName, ErrorStr);
|
||||||
if (!M) return true;
|
if (!M) return true;
|
||||||
Objects.push_back(M);
|
Objects.push_back(M);
|
||||||
break;
|
break;
|
||||||
@ -153,7 +144,7 @@ static bool ReadArchiveBuffer(const std::string &ArchiveName,
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
std::cerr << "ReadArchiveBuffer: WARNING: Skipping unknown file: "
|
std::cerr << "ReadArchiveBuffer: WARNING: Skipping unknown file: "
|
||||||
<< *(FullMemberName) << "\n";
|
<< FullMemberName << "\n";
|
||||||
break; // Just ignore unknown files.
|
break; // Just ignore unknown files.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,17 +122,8 @@ static bool ReadArchiveBuffer(const std::string &ArchiveName,
|
|||||||
while (endp[-1] == ' ')
|
while (endp[-1] == ' ')
|
||||||
--endp;
|
--endp;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// We now have the beginning and the end of the object name.
|
|
||||||
// Convert this into a dynamically allocated std::string to pass
|
|
||||||
// to the routines that create the Module object. We do this
|
|
||||||
// (I think) because the created Module object will outlive this function,
|
|
||||||
// but statically declared std::string's won't.
|
|
||||||
//
|
|
||||||
std::string MemberName (startp, endp);
|
std::string MemberName (startp, endp);
|
||||||
std::string * FullMemberName;
|
std::string FullMemberName = ArchiveName + "(" + MemberName + ")";
|
||||||
FullMemberName = new std::string (ArchiveName + "(" + MemberName + ")");
|
|
||||||
|
|
||||||
switch (getObjectType(Hdr, MemberData, MemberSize)) {
|
switch (getObjectType(Hdr, MemberData, MemberSize)) {
|
||||||
case SVR4LongFilename:
|
case SVR4LongFilename:
|
||||||
@ -142,7 +133,7 @@ static bool ReadArchiveBuffer(const std::string &ArchiveName,
|
|||||||
break;
|
break;
|
||||||
case UserObject: {
|
case UserObject: {
|
||||||
Module *M = ParseBytecodeBuffer(MemberData, MemberSize,
|
Module *M = ParseBytecodeBuffer(MemberData, MemberSize,
|
||||||
*(FullMemberName), ErrorStr);
|
FullMemberName, ErrorStr);
|
||||||
if (!M) return true;
|
if (!M) return true;
|
||||||
Objects.push_back(M);
|
Objects.push_back(M);
|
||||||
break;
|
break;
|
||||||
@ -153,7 +144,7 @@ static bool ReadArchiveBuffer(const std::string &ArchiveName,
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
std::cerr << "ReadArchiveBuffer: WARNING: Skipping unknown file: "
|
std::cerr << "ReadArchiveBuffer: WARNING: Skipping unknown file: "
|
||||||
<< *(FullMemberName) << "\n";
|
<< FullMemberName << "\n";
|
||||||
break; // Just ignore unknown files.
|
break; // Just ignore unknown files.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user