[llvm] [llvm-symbolizer] Make symbolizer parse section relative syntax (PR #168524)
James Henderson via llvm-commits
llvm-commits at lists.llvm.org
Fri May 1 00:55:56 PDT 2026
================
@@ -807,20 +810,62 @@ Expected<DataRefImpl> XCOFFObjectFile::getSectionByNum(int16_t Num) const {
return DRI;
}
-DataRefImpl
+static StringRef getSectionTypeName(XCOFF::SectionTypeFlags SectType) {
+ switch (SectType) {
+ case XCOFF::STYP_PAD:
+ return "PAD";
+ case XCOFF::STYP_DWARF:
+ return "DWARF";
+ case XCOFF::STYP_TEXT:
+ return "TEXT";
+ case XCOFF::STYP_DATA:
+ return "DATA";
+ case XCOFF::STYP_BSS:
+ return "BSS";
+ case XCOFF::STYP_EXCEPT:
+ return "EXCEPT";
+ case XCOFF::STYP_INFO:
+ return "INFO";
+ case XCOFF::STYP_TDATA:
+ return "TDATA";
+ case XCOFF::STYP_TBSS:
+ return "TBSS";
+ case XCOFF::STYP_LOADER:
+ return "LOADER";
+ case XCOFF::STYP_DEBUG:
+ return "DEBUG";
+ case XCOFF::STYP_TYPCHK:
+ return "TYPCHK";
+ case XCOFF::STYP_OVRFLO:
+ return "OVRFLO";
+ }
+ return "";
+}
+
+Expected<DataRefImpl>
XCOFFObjectFile::getSectionByType(XCOFF::SectionTypeFlags SectType) const {
- DataRefImpl DRI;
- auto GetSectionAddr = [&](const auto &Sections) -> uintptr_t {
- for (const auto &Sec : Sections)
- if (Sec.getSectionType() == SectType)
- return reinterpret_cast<uintptr_t>(&Sec);
- return uintptr_t(0);
+ DataRefImpl Result;
+ Result.p = 0;
+ auto FindSection = [&](const auto &Sections) -> Error {
----------------
jh7370 wrote:
I think this lambda is getting a bit long. I'd prefer it just to be a standalone function with appropriate parameters.
Also, I'm not sure we benefit from `auto` here and in the loop either (see my other comments).
https://github.com/llvm/llvm-project/pull/168524
More information about the llvm-commits
mailing list