diff --git a/llvm/D68650.diff b/llvm/D68650.diff new file mode 100644 --- /dev/null +++ b/llvm/D68650.diff @@ -0,0 +1,34 @@ +Index: llvm/include/llvm/Object/XCOFFObjectFile.h +=================================================================== +--- llvm/include/llvm/Object/XCOFFObjectFile.h ++++ llvm/include/llvm/Object/XCOFFObjectFile.h +@@ -113,7 +113,12 @@ + }; + + struct XCOFFCsectAuxEnt32 { +- support::ubig32_t SectionLen; ++ support::ubig32_t ++ SectionOrLength; // If the symbol type is XTY_SD or XTY_CM, the csect ++ // length. ++ // If the symbol type is XTY_LD, the symbol table ++ // index of the containing csect. ++ // If the symbol type is XTY_ER, 0. + support::ubig32_t ParameterHashIndex; + support::ubig16_t TypeChkSectNum; + uint8_t SymbolAlignmentAndType; +Index: llvm/tools/llvm-readobj/XCOFFDumper.cpp +=================================================================== +--- llvm/tools/llvm-readobj/XCOFFDumper.cpp ++++ llvm/tools/llvm-readobj/XCOFFDumper.cpp +@@ -213,9 +213,9 @@ + W.printNumber("Index", + Obj.getSymbolIndex(reinterpret_cast(AuxEntPtr))); + if ((AuxEntPtr->SymbolAlignmentAndType & SymbolTypeMask) == XCOFF::XTY_LD) +- W.printNumber("ContainingCsectSymbolIndex", AuxEntPtr->SectionLen); ++ W.printNumber("ContainingCsectSymbolIndex", AuxEntPtr->SectionOrLength); + else +- W.printNumber("SectionLen", AuxEntPtr->SectionLen); ++ W.printNumber("SectionLen", AuxEntPtr->SectionOrLength); + W.printHex("ParameterHashIndex", AuxEntPtr->ParameterHashIndex); + W.printHex("TypeChkSectNum", AuxEntPtr->TypeChkSectNum); + // Print out symbol alignment and type. diff --git a/llvm/include/llvm/Object/XCOFFObjectFile.h b/llvm/include/llvm/Object/XCOFFObjectFile.h --- a/llvm/include/llvm/Object/XCOFFObjectFile.h +++ b/llvm/include/llvm/Object/XCOFFObjectFile.h @@ -113,7 +113,12 @@ }; struct XCOFFCsectAuxEnt32 { - support::ubig32_t SectionLen; + support::ubig32_t + SectionOrLength; // If the symbol type is XTY_SD or XTY_CM, the csect + // length. + // If the symbol type is XTY_LD, the symbol table + // index of the containing csect. + // If the symbol type is XTY_ER, 0. support::ubig32_t ParameterHashIndex; support::ubig16_t TypeChkSectNum; uint8_t SymbolAlignmentAndType; diff --git a/llvm/tools/llvm-readobj/XCOFFDumper.cpp b/llvm/tools/llvm-readobj/XCOFFDumper.cpp --- a/llvm/tools/llvm-readobj/XCOFFDumper.cpp +++ b/llvm/tools/llvm-readobj/XCOFFDumper.cpp @@ -161,9 +161,9 @@ W.printNumber("Index", Obj.getSymbolIndex(reinterpret_cast(AuxEntPtr))); if ((AuxEntPtr->SymbolAlignmentAndType & SymbolTypeMask) == XCOFF::XTY_LD) - W.printNumber("ContainingCsectSymbolIndex", AuxEntPtr->SectionLen); + W.printNumber("ContainingCsectSymbolIndex", AuxEntPtr->SectionOrLength); else - W.printNumber("SectionLen", AuxEntPtr->SectionLen); + W.printNumber("SectionLen", AuxEntPtr->SectionOrLength); W.printHex("ParameterHashIndex", AuxEntPtr->ParameterHashIndex); W.printHex("TypeChkSectNum", AuxEntPtr->TypeChkSectNum); // Print out symbol alignment and type.