Don't fetch pointers from a InMemoryStruct.

InMemoryStruct is extremely dangerous as it returns data from an internal
buffer when the endiannes doesn't match. This should fix the tests on big
endian hosts.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178875 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola
2013-04-05 15:15:22 +00:00
parent 332edeb1dc
commit f16c2bb320
7 changed files with 43 additions and 39 deletions

View File

@ -337,10 +337,9 @@ void llvm::DisassembleInputMachO(StringRef Filename) {
SectName != "__text")
continue; // Skip non-text sections
StringRef SegmentName;
DataRefImpl DR = Sections[SectIdx].getRawDataRefImpl();
if (MachOOF->getSectionFinalSegmentName(DR, SegmentName) ||
SegmentName != "__TEXT")
StringRef SegmentName = MachOOF->getSectionFinalSegmentName(DR);
if (SegmentName != "__TEXT")
continue;
// Insert the functions from the function starts segment into our map.