Index: lib/Support/ARMAttributeParser.cpp =================================================================== --- lib/Support/ARMAttributeParser.cpp +++ lib/Support/ARMAttributeParser.cpp @@ -674,9 +674,10 @@ DictScope ASS(*SW, ScopeName); if (!Indicies.empty()) SW->printList(IndexName, Indicies); + ParseAttributeList(Data, Offset, Length); + } else { + ParseAttributeList(Data, Offset, Length); } - - ParseAttributeList(Data, Offset, Length); } } @@ -686,8 +687,8 @@ while (Offset < Section.size()) { uint32_t SectionLength = isLittle ? - *reinterpret_cast(Section.data() + Offset) : - *reinterpret_cast(Section.data() + Offset); + support::endian::read32le(Section.data() + Offset) : + support::endian::read32be(Section.data() + Offset); if (SW) { SW->startLine() << "Section " << ++SectionNumber << " {\n";