[llvm] [SystemZ][z/OS] yaml2obj GOFF symbols (PR #75971)

Neumann Hon via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 12 15:38:19 PDT 2024


================
@@ -0,0 +1,40 @@
+# RUN: yaml2obj %s | od -v -An -tx1 | FileCheck --ignore-case %s
----------------
Everybody0523 wrote:

**Short Answer:**
The way a symbol is handled differs slightly depending on the name's length.

**Long Answer:**
(Might need a bit of background info to explain this in detail...)

GOFF is made up of 80-byte physical records. Both symbols (represented by a type of record called the ESD Record) and sections (represented by a tuple of ESD Records + another type of record, the TXT record) can span multiple physical records, depending on the length of their names (in the case of symbols), or their contents (in the case of a section). The physical records that represent the same symbol/section collectively make up a "logical record". 

This testcase tests a symbol that does not span multiple physical records, as opposed to `GOFF-longSymbol.yaml`, which tests symbols that do span multiple physical records.

Maybe the best way to handle this is that the record in this yaml file could just be copied to GOFF-longSymbol.yaml, that file could have its name changed to suggest that we are testing the proper emitting of symbols of varying name lengths, and then this file could be deleted?

https://github.com/llvm/llvm-project/pull/75971


More information about the llvm-commits mailing list