Skip to content

Commit fc42a2f

Browse files
author
esmeyi
committed
Revert "[XCOFF][obj2yaml] support parsing auxiliary symbols for XCOFF (#70642)"
This reverts commit 0e3faa2. Due to a sanitizer error in https://lab.llvm.org/buildbot/#/builders/5/builds/39023. Will be re-landed after repairs and thorough testing.
1 parent 0c17f43 commit fc42a2f

File tree

5 files changed

+13
-638
lines changed

5 files changed

+13
-638
lines changed

llvm/include/llvm/Object/XCOFFObjectFile.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -411,13 +411,13 @@ class XCOFFCsectAuxRef {
411411
return Entry64->AuxType;
412412
}
413413

414+
private:
414415
uint8_t getSymbolAlignmentAndType() const {
415416
return GETVALUE(SymbolAlignmentAndType);
416417
}
417418

418419
#undef GETVALUE
419420

420-
private:
421421
const XCOFFCsectAuxEnt32 *Entry32 = nullptr;
422422
const XCOFFCsectAuxEnt64 *Entry64 = nullptr;
423423
};

llvm/lib/ObjectYAML/XCOFFYAML.cpp

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -282,57 +282,45 @@ static void auxSymMapping(IO &IO, XCOFFYAML::SectAuxEntForStat &AuxSym) {
282282

283283
void MappingTraits<std::unique_ptr<XCOFFYAML::AuxSymbolEnt>>::mapping(
284284
IO &IO, std::unique_ptr<XCOFFYAML::AuxSymbolEnt> &AuxSym) {
285-
286-
auto ResetAuxSym = [&](auto *AuxEnt) {
287-
if (!IO.outputting())
288-
AuxSym.reset(AuxEnt);
289-
};
290-
285+
assert(!IO.outputting() && "We don't dump aux symbols currently.");
291286
const bool Is64 =
292287
static_cast<XCOFFYAML::Object *>(IO.getContext())->Header.Magic ==
293288
(llvm::yaml::Hex16)XCOFF::XCOFF64;
294-
295289
XCOFFYAML::AuxSymbolType AuxType;
296-
if (IO.outputting())
297-
AuxType = AuxSym.get()->Type;
298290
IO.mapRequired("Type", AuxType);
299291
switch (AuxType) {
300292
case XCOFFYAML::AUX_EXCEPT:
301-
if (!Is64) {
293+
if (!Is64)
302294
IO.setError("an auxiliary symbol of type AUX_EXCEPT cannot be defined in "
303295
"XCOFF32");
304-
return;
305-
}
306-
ResetAuxSym(new XCOFFYAML::ExcpetionAuxEnt());
296+
AuxSym.reset(new XCOFFYAML::ExcpetionAuxEnt());
307297
auxSymMapping(IO, *cast<XCOFFYAML::ExcpetionAuxEnt>(AuxSym.get()));
308298
break;
309299
case XCOFFYAML::AUX_FCN:
310-
ResetAuxSym(new XCOFFYAML::FunctionAuxEnt());
300+
AuxSym.reset(new XCOFFYAML::FunctionAuxEnt());
311301
auxSymMapping(IO, *cast<XCOFFYAML::FunctionAuxEnt>(AuxSym.get()), Is64);
312302
break;
313303
case XCOFFYAML::AUX_SYM:
314-
ResetAuxSym(new XCOFFYAML::BlockAuxEnt());
304+
AuxSym.reset(new XCOFFYAML::BlockAuxEnt());
315305
auxSymMapping(IO, *cast<XCOFFYAML::BlockAuxEnt>(AuxSym.get()), Is64);
316306
break;
317307
case XCOFFYAML::AUX_FILE:
318-
ResetAuxSym(new XCOFFYAML::FileAuxEnt());
308+
AuxSym.reset(new XCOFFYAML::FileAuxEnt());
319309
auxSymMapping(IO, *cast<XCOFFYAML::FileAuxEnt>(AuxSym.get()));
320310
break;
321311
case XCOFFYAML::AUX_CSECT:
322-
ResetAuxSym(new XCOFFYAML::CsectAuxEnt());
312+
AuxSym.reset(new XCOFFYAML::CsectAuxEnt());
323313
auxSymMapping(IO, *cast<XCOFFYAML::CsectAuxEnt>(AuxSym.get()), Is64);
324314
break;
325315
case XCOFFYAML::AUX_SECT:
326-
ResetAuxSym(new XCOFFYAML::SectAuxEntForDWARF());
316+
AuxSym.reset(new XCOFFYAML::SectAuxEntForDWARF());
327317
auxSymMapping(IO, *cast<XCOFFYAML::SectAuxEntForDWARF>(AuxSym.get()));
328318
break;
329319
case XCOFFYAML::AUX_STAT:
330-
if (Is64) {
320+
if (Is64)
331321
IO.setError(
332322
"an auxiliary symbol of type AUX_STAT cannot be defined in XCOFF64");
333-
return;
334-
}
335-
ResetAuxSym(new XCOFFYAML::SectAuxEntForStat());
323+
AuxSym.reset(new XCOFFYAML::SectAuxEntForStat());
336324
auxSymMapping(IO, *cast<XCOFFYAML::SectAuxEntForStat>(AuxSym.get()));
337325
break;
338326
}
@@ -346,7 +334,8 @@ void MappingTraits<XCOFFYAML::Symbol>::mapping(IO &IO, XCOFFYAML::Symbol &S) {
346334
IO.mapOptional("Type", S.Type);
347335
IO.mapOptional("StorageClass", S.StorageClass);
348336
IO.mapOptional("NumberOfAuxEntries", S.NumberOfAuxEntries);
349-
IO.mapOptional("AuxEntries", S.AuxEntries);
337+
if (!IO.outputting())
338+
IO.mapOptional("AuxEntries", S.AuxEntries);
350339
}
351340

352341
void MappingTraits<XCOFFYAML::StringTable>::mapping(IO &IO, XCOFFYAML::StringTable &Str) {

llvm/test/tools/obj2yaml/XCOFF/aix.yaml

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -52,30 +52,12 @@
5252
# CHECK32-NEXT: Type: 0x0
5353
# CHECK32-NEXT: StorageClass: C_EXT
5454
# CHECK32-NEXT: NumberOfAuxEntries: 1
55-
# CHECK32-NEXT: AuxEntries:
56-
# CHECK32-NEXT: - Type: AUX_CSECT
57-
# CHECK32-NEXT: ParameterHashIndex: 0
58-
# CHECK32-NEXT: TypeChkSectNum: 0
59-
# CHECK32-NEXT: SymbolAlignmentAndType: 0
60-
# CHECK32-NEXT: StorageMappingClass: XMC_PR
61-
# CHECK32-NEXT: SectionOrLength: 0
62-
# CHECK32-NEXT: StabInfoIndex: 0
63-
# CHECK32-NEXT: StabSectNum: 0
6455
# CHECK32-NEXT: - Name: .data
6556
# CHECK32-NEXT: Value: 0x70
6657
# CHECK32-NEXT: Section: .data
6758
# CHECK32-NEXT: Type: 0x0
6859
# CHECK32-NEXT: StorageClass: C_HIDEXT
6960
# CHECK32-NEXT: NumberOfAuxEntries: 1
70-
# CHECK32-NEXT: AuxEntries:
71-
# CHECK32-NEXT: - Type: AUX_CSECT
72-
# CHECK32-NEXT: ParameterHashIndex: 0
73-
# CHECK32-NEXT: TypeChkSectNum: 0
74-
# CHECK32-NEXT: SymbolAlignmentAndType: 0
75-
# CHECK32-NEXT: StorageMappingClass: XMC_PR
76-
# CHECK32-NEXT: SectionOrLength: 0
77-
# CHECK32-NEXT: StabInfoIndex: 0
78-
# CHECK32-NEXT: StabSectNum: 0
7961

8062
# CHECK64: --- !XCOFF
8163
# CHECK64-NEXT: FileHeader:
@@ -124,28 +106,12 @@
124106
# CHECK64-NEXT: Type: 0x0
125107
# CHECK64-NEXT: StorageClass: C_EXT
126108
# CHECK64-NEXT: NumberOfAuxEntries: 1
127-
# CHECK64-NEXT: AuxEntries:
128-
# CHECK64-NEXT: - Type: AUX_CSECT
129-
# CHECK64-NEXT: ParameterHashIndex: 0
130-
# CHECK64-NEXT: TypeChkSectNum: 0
131-
# CHECK64-NEXT: SymbolAlignmentAndType: 0
132-
# CHECK64-NEXT: StorageMappingClass: XMC_PR
133-
# CHECK64-NEXT: SectionOrLengthLo: 0
134-
# CHECK64-NEXT: SectionOrLengthHi: 0
135109
# CHECK64-NEXT: - Name: .data
136110
# CHECK64-NEXT: Value: 0x70
137111
# CHECK64-NEXT: Section: .data
138112
# CHECK64-NEXT: Type: 0x0
139113
# CHECK64-NEXT: StorageClass: C_HIDEXT
140114
# CHECK64-NEXT: NumberOfAuxEntries: 1
141-
# CHECK64-NEXT: AuxEntries:
142-
# CHECK64-NEXT: - Type: AUX_CSECT
143-
# CHECK64-NEXT: ParameterHashIndex: 0
144-
# CHECK64-NEXT: TypeChkSectNum: 0
145-
# CHECK64-NEXT: SymbolAlignmentAndType: 0
146-
# CHECK64-NEXT: StorageMappingClass: XMC_PR
147-
# CHECK64-NEXT: SectionOrLengthLo: 0
148-
# CHECK64-NEXT: SectionOrLengthHi: 0
149115

150116
--- !XCOFF
151117
FileHeader:
@@ -174,13 +140,9 @@ Symbols:
174140
Type: 0x0
175141
StorageClass: C_EXT
176142
NumberOfAuxEntries: 1
177-
AuxEntries:
178-
- Type: AUX_CSECT
179143
- Name: .data
180144
Value: 0x70
181145
Section: .data
182146
Type: 0x0
183147
StorageClass: C_HIDEXT
184148
NumberOfAuxEntries: 1
185-
AuxEntries:
186-
- Type: AUX_CSECT

0 commit comments

Comments
 (0)