[llvm] 05fffac - [NFC][XCOFF] commit tests for D113552.

via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 19 01:07:46 PST 2022


Author: esmeyi
Date: 2022-01-19T04:06:37-05:00
New Revision: 05fffac1f9ad98505ec111bb4aa47ff84771ecf3

URL: https://github.com/llvm/llvm-project/commit/05fffac1f9ad98505ec111bb4aa47ff84771ecf3
DIFF: https://github.com/llvm/llvm-project/commit/05fffac1f9ad98505ec111bb4aa47ff84771ecf3.diff

LOG: [NFC][XCOFF] commit tests for D113552.

The code part of D113552 was committed at
817936408bad, where the test was left because
it depended on another patch.
There are no dependencies now.

Added: 
    llvm/test/tools/yaml2obj/XCOFF/aux-symbols.yaml

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/llvm/test/tools/yaml2obj/XCOFF/aux-symbols.yaml b/llvm/test/tools/yaml2obj/XCOFF/aux-symbols.yaml
new file mode 100644
index 0000000000000..439691695642d
--- /dev/null
+++ b/llvm/test/tools/yaml2obj/XCOFF/aux-symbols.yaml
@@ -0,0 +1,581 @@
+## Check that we are able to dump auxiliary symbols.
+## 1. We can use default values for the fields of auxiliary symbols.
+## 2. We can explicitly specify all fields for auxiliary symbols.
+
+## Case1: check the default behaviour in XCOFF32.
+# RUN: yaml2obj %s --docnum=1 -o %t1
+# RUN: llvm-readobj --syms %t1 | FileCheck %s --check-prefix=DEFAULT32
+
+# DEFAULT32:     Symbols [
+# DEFAULT32-NEXT:   Symbol {
+# DEFAULT32-NEXT:     Index: 0
+# DEFAULT32-NEXT:     Name: aux_fcn_csect
+# DEFAULT32-NEXT:     Value (RelocatableAddress): 0x0
+# DEFAULT32-NEXT:     Section: N_UNDEF
+# DEFAULT32-NEXT:     Type: 0x20
+# DEFAULT32-NEXT:     StorageClass: C_EXT (0x2)
+# DEFAULT32-NEXT:     NumberOfAuxEntries: 2
+# DEFAULT32-NEXT:     Function Auxiliary Entry {
+# DEFAULT32-NEXT:       Index: 1
+# DEFAULT32-NEXT:       OffsetToExceptionTable: 0x0
+# DEFAULT32-NEXT:       SizeOfFunction: 0x0
+# DEFAULT32-NEXT:       PointerToLineNum: 0x0
+# DEFAULT32-NEXT:       SymbolIndexOfNextBeyond: 0
+# DEFAULT32-NEXT:     }
+# DEFAULT32-NEXT:     CSECT Auxiliary Entry {
+# DEFAULT32-NEXT:       Index: 2
+# DEFAULT32-NEXT:       SectionLen: 0
+# DEFAULT32-NEXT:       ParameterHashIndex: 0x0
+# DEFAULT32-NEXT:       TypeChkSectNum: 0x0
+# DEFAULT32-NEXT:       SymbolAlignmentLog2: 0
+# DEFAULT32-NEXT:       SymbolType: XTY_ER (0x0)
+# DEFAULT32-NEXT:       StorageMappingClass: XMC_PR (0x0)
+# DEFAULT32-NEXT:       StabInfoIndex: 0x0
+# DEFAULT32-NEXT:       StabSectNum: 0x0
+# DEFAULT32-NEXT:     }
+# DEFAULT32-NEXT:   }
+# DEFAULT32-NEXT:   Symbol {
+# DEFAULT32-NEXT:     Index: 3
+# DEFAULT32-NEXT:     Name: aux_stat
+# DEFAULT32-NEXT:     Value (RelocatableAddress): 0x0
+# DEFAULT32-NEXT:     Section: N_UNDEF
+# DEFAULT32-NEXT:     Type: 0x0
+# DEFAULT32-NEXT:     StorageClass: C_STAT (0x3)
+# DEFAULT32-NEXT:     NumberOfAuxEntries: 1
+# DEFAULT32-NEXT:     Sect Auxiliary Entry For Stat {
+# DEFAULT32-NEXT:       Index: 4
+# DEFAULT32-NEXT:       SectionLength: 0
+# DEFAULT32-NEXT:       NumberOfRelocEnt: 0
+# DEFAULT32-NEXT:       NumberOfLineNum: 0
+# DEFAULT32-NEXT:     }
+# DEFAULT32-NEXT:   }
+# DEFAULT32-NEXT:   Symbol {
+# DEFAULT32-NEXT:     Index: 5
+# DEFAULT32-NEXT:     Name: aux_sym
+# DEFAULT32-NEXT:     Value (RelocatableAddress): 0x0
+# DEFAULT32-NEXT:     Section: N_UNDEF
+# DEFAULT32-NEXT:     Type: 0x0
+# DEFAULT32-NEXT:     StorageClass: C_BLOCK (0x64)
+# DEFAULT32-NEXT:     NumberOfAuxEntries: 1
+# DEFAULT32-NEXT:     Block Auxiliary Entry {
+# DEFAULT32-NEXT:       Index: 6
+# DEFAULT32-NEXT:       LineNumber (High 2 Bytes): 0x0
+# DEFAULT32-NEXT:       LineNumber (Low 2 Bytes): 0x0
+# DEFAULT32-NEXT:     }
+# DEFAULT32-NEXT:   }
+# DEFAULT32-NEXT:   Symbol {
+# DEFAULT32-NEXT:     Index: 7
+# DEFAULT32-NEXT:     Name: aux_file
+# DEFAULT32-NEXT:     Value (SymbolTableIndex): 0x0
+# DEFAULT32-NEXT:     Section: N_UNDEF
+# DEFAULT32-NEXT:     Source Language ID: TB_C (0x0)
+# DEFAULT32-NEXT:     CPU Version ID: 0x0
+# DEFAULT32-NEXT:     StorageClass: C_FILE (0x67)
+# DEFAULT32-NEXT:     NumberOfAuxEntries: 1
+# DEFAULT32-NEXT:     File Auxiliary Entry {
+# DEFAULT32-NEXT:       Index: 8
+# DEFAULT32-NEXT:       Name: 
+# DEFAULT32-NEXT:       Type: XFT_FN (0x0)
+# DEFAULT32-NEXT:     }
+# DEFAULT32-NEXT:   }
+# DEFAULT32-NEXT:   Symbol {
+# DEFAULT32-NEXT:     Index: 9
+# DEFAULT32-NEXT:     Name: aux_sect
+# DEFAULT32-NEXT:     Value (OffsetInDWARF): 0x0
+# DEFAULT32-NEXT:     Section: N_UNDEF
+# DEFAULT32-NEXT:     Type: 0x0
+# DEFAULT32-NEXT:     StorageClass: C_DWARF (0x70)
+# DEFAULT32-NEXT:     NumberOfAuxEntries: 1
+# DEFAULT32-NEXT:     Sect Auxiliary Entry For DWARF {
+# DEFAULT32-NEXT:       Index: 10
+# DEFAULT32-NEXT:       LengthOfSectionPortion: 0x0
+# DEFAULT32-NEXT:       NumberOfRelocEntries: 0
+# DEFAULT32-NEXT:     }
+# DEFAULT32-NEXT:   }
+# DEFAULT32-NEXT: ]
+
+--- !XCOFF
+FileHeader:
+  MagicNumber: 0x1DF
+Symbols:
+  - Name:               aux_fcn_csect
+    StorageClass:       C_EXT
+    Type:               0x20
+    AuxEntries:
+      - Type:                 AUX_FCN
+        OffsetToExceptionTbl: [[OFFTOEXP=<none>]]
+        SizeOfFunction:       [[SIZEOFFUN=<none>]]
+        SymIdxOfNextBeyond:   [[SYMIDXOFNEXT=<none>]]
+        PtrToLineNum:         [[PTRTOLINE=<none>]]
+      - Type:                   AUX_CSECT
+        ParameterHashIndex:     [[HASHIDX=<none>]]
+        TypeChkSectNum:         [[TYPECHKNUM=<none>]]
+        SymbolAlignmentAndType: [[SYMALIGN=<none>]]
+        StorageMappingClass:    [[STORMAPCLASS=<none>]]
+        SectionOrLength:        [[SECTORLEN=<none>]]
+        StabInfoIndex:          [[STABIDX=<none>]]
+        StabSectNum:            [[STABNUM=<none>]]
+  - Name:               aux_stat
+    StorageClass:       C_STAT
+    AuxEntries:
+      - Type:             AUX_STAT
+        SectionLength:    [[SECTLEN=<none>]]
+        NumberOfRelocEnt: [[NUMOFREL=<none>]]
+        NumberOfLineNum:  [[NUMOFLINE=<none>]]
+  - Name:               aux_sym
+    StorageClass:       C_BLOCK
+    AuxEntries:
+      - Type:       AUX_SYM
+        LineNumHi:  [[LINEHI=<none>]]
+        LineNumLo:  [[LINELO=<none>]]
+  - Name:               aux_file
+    StorageClass:       C_FILE
+    AuxEntries:
+      - Type:             AUX_FILE
+        FileNameOrString: [[FILENAME=<none>]]
+        FileStringType:   [[FILETYPE=<none>]]
+  - Name:               aux_sect
+    StorageClass:       C_DWARF
+    AuxEntries:
+      - Type:                   AUX_SECT
+        LengthOfSectionPortion: [[LENOFSEC=<none>]]
+        NumberOfRelocEnt:       [[NUMOFRELOC=<none>]]
+
+## Case2: check the non-default behaviour in XCOFF32.
+# RUN: yaml2obj %s --docnum=1 -o %t2 -DOFFTOEXP=2 -DSIZEOFFUN=3 \
+# RUN:   -DSYMIDXOFNEXT=4 -DPTRTOLINE=5 -DHASHIDX=2 -DTYPECHKNUM=3 \
+# RUN:   -DSYMALIGN=4 -DSTORMAPCLASS=XMC_RO -DSECTORLEN=6 -DSTABIDX=7 \
+# RUN:   -DSTABNUM=8 -DSECTLEN=2 -DNUMOFREL=3 -DNUMOFLINE=4 \
+# RUN:   -DLINEHI=2 -DLINELO=3 -DFILENAME='fname' -DFILETYPE=XFT_CD \
+# RUN:   -DLENOFSEC=2 -DNUMOFRELOC=3
+# RUN: llvm-readobj --syms %t2 | FileCheck %s --check-prefix=NON-DEFAULT32
+
+# NON-DEFAULT32:      Symbols [
+# NON-DEFAULT32-NEXT:   Symbol {
+# NON-DEFAULT32-NEXT:     Index: 0
+# NON-DEFAULT32-NEXT:     Name: aux_fcn_csect
+# NON-DEFAULT32-NEXT:     Value (RelocatableAddress): 0x0
+# NON-DEFAULT32-NEXT:     Section: N_UNDEF
+# NON-DEFAULT32-NEXT:     Type: 0x20
+# NON-DEFAULT32-NEXT:     StorageClass: C_EXT (0x2)
+# NON-DEFAULT32-NEXT:     NumberOfAuxEntries: 2
+# NON-DEFAULT32-NEXT:     Function Auxiliary Entry {
+# NON-DEFAULT32-NEXT:       Index: 1
+# NON-DEFAULT32-NEXT:       OffsetToExceptionTable: 0x2
+# NON-DEFAULT32-NEXT:       SizeOfFunction: 0x3
+# NON-DEFAULT32-NEXT:       PointerToLineNum: 0x5
+# NON-DEFAULT32-NEXT:       SymbolIndexOfNextBeyond: 4
+# NON-DEFAULT32-NEXT:     }
+# NON-DEFAULT32-NEXT:     CSECT Auxiliary Entry {
+# NON-DEFAULT32-NEXT:       Index: 2
+# NON-DEFAULT32-NEXT:       SectionLen: 6
+# NON-DEFAULT32-NEXT:       ParameterHashIndex: 0x2
+# NON-DEFAULT32-NEXT:       TypeChkSectNum: 0x3
+# NON-DEFAULT32-NEXT:       SymbolAlignmentLog2: 0
+# NON-DEFAULT32-NEXT:       SymbolType: 0x4
+# NON-DEFAULT32-NEXT:       StorageMappingClass: XMC_RO (0x1)
+# NON-DEFAULT32-NEXT:       StabInfoIndex: 0x7
+# NON-DEFAULT32-NEXT:       StabSectNum: 0x8
+# NON-DEFAULT32-NEXT:     }
+# NON-DEFAULT32-NEXT:   }
+# NON-DEFAULT32-NEXT:   Symbol {
+# NON-DEFAULT32-NEXT:     Index: 3
+# NON-DEFAULT32-NEXT:     Name: aux_stat
+# NON-DEFAULT32-NEXT:     Value (RelocatableAddress): 0x0
+# NON-DEFAULT32-NEXT:     Section: N_UNDEF
+# NON-DEFAULT32-NEXT:     Type: 0x0
+# NON-DEFAULT32-NEXT:     StorageClass: C_STAT (0x3)
+# NON-DEFAULT32-NEXT:     NumberOfAuxEntries: 1
+# NON-DEFAULT32-NEXT:     Sect Auxiliary Entry For Stat {
+# NON-DEFAULT32-NEXT:       Index: 4
+# NON-DEFAULT32-NEXT:       SectionLength: 2
+# NON-DEFAULT32-NEXT:       NumberOfRelocEnt: 3
+# NON-DEFAULT32-NEXT:       NumberOfLineNum: 4
+# NON-DEFAULT32-NEXT:     }
+# NON-DEFAULT32-NEXT:   }
+# NON-DEFAULT32-NEXT:   Symbol {
+# NON-DEFAULT32-NEXT:     Index: 5
+# NON-DEFAULT32-NEXT:     Name: aux_sym
+# NON-DEFAULT32-NEXT:     Value (RelocatableAddress): 0x0
+# NON-DEFAULT32-NEXT:     Section: N_UNDEF
+# NON-DEFAULT32-NEXT:     Type: 0x0
+# NON-DEFAULT32-NEXT:     StorageClass: C_BLOCK (0x64)
+# NON-DEFAULT32-NEXT:     NumberOfAuxEntries: 1
+# NON-DEFAULT32-NEXT:     Block Auxiliary Entry {
+# NON-DEFAULT32-NEXT:       Index: 6
+# NON-DEFAULT32-NEXT:       LineNumber (High 2 Bytes): 0x2
+# NON-DEFAULT32-NEXT:       LineNumber (Low 2 Bytes): 0x3
+# NON-DEFAULT32-NEXT:     }
+# NON-DEFAULT32-NEXT:   }
+# NON-DEFAULT32-NEXT:   Symbol {
+# NON-DEFAULT32-NEXT:     Index: 7
+# NON-DEFAULT32-NEXT:     Name: aux_file
+# NON-DEFAULT32-NEXT:     Value (SymbolTableIndex): 0x0
+# NON-DEFAULT32-NEXT:     Section: N_UNDEF
+# NON-DEFAULT32-NEXT:     Source Language ID: TB_C (0x0)
+# NON-DEFAULT32-NEXT:     CPU Version ID: 0x0
+# NON-DEFAULT32-NEXT:     StorageClass: C_FILE (0x67)
+# NON-DEFAULT32-NEXT:     NumberOfAuxEntries: 1
+# NON-DEFAULT32-NEXT:     File Auxiliary Entry {
+# NON-DEFAULT32-NEXT:       Index: 8
+# NON-DEFAULT32-NEXT:       Name: fname
+# NON-DEFAULT32-NEXT:       Type: XFT_CD (0x80)
+# NON-DEFAULT32-NEXT:     }
+# NON-DEFAULT32-NEXT:   }
+# NON-DEFAULT32-NEXT:   Symbol {
+# NON-DEFAULT32-NEXT:     Index: 9
+# NON-DEFAULT32-NEXT:     Name: aux_sect
+# NON-DEFAULT32-NEXT:     Value (OffsetInDWARF): 0x0
+# NON-DEFAULT32-NEXT:     Section: N_UNDEF
+# NON-DEFAULT32-NEXT:     Type: 0x0
+# NON-DEFAULT32-NEXT:     StorageClass: C_DWARF (0x70)
+# NON-DEFAULT32-NEXT:     NumberOfAuxEntries: 1
+# NON-DEFAULT32-NEXT:     Sect Auxiliary Entry For DWARF {
+# NON-DEFAULT32-NEXT:       Index: 10
+# NON-DEFAULT32-NEXT:       LengthOfSectionPortion: 0x2
+# NON-DEFAULT32-NEXT:       NumberOfRelocEntries: 3
+# NON-DEFAULT32-NEXT:     }
+# NON-DEFAULT32-NEXT:   }
+# NON-DEFAULT32-NEXT: ]
+
+## Case3: check the default behaviour in XCOFF64.
+# RUN: yaml2obj %s --docnum=2 -o %t3
+# RUN: llvm-readobj --syms %t3 | FileCheck %s --check-prefix=DEFAULT64
+
+# DEFAULT64:      Symbols [
+# DEFAULT64-NEXT:   Symbol {
+# DEFAULT64-NEXT:     Index: 0
+# DEFAULT64-NEXT:     Name: aux_except_fcn_csect
+# DEFAULT64-NEXT:     Value (RelocatableAddress): 0x0
+# DEFAULT64-NEXT:     Section: N_UNDEF
+# DEFAULT64-NEXT:     Type: 0x20
+# DEFAULT64-NEXT:     StorageClass: C_EXT (0x2)
+# DEFAULT64-NEXT:     NumberOfAuxEntries: 3
+# DEFAULT64-NEXT:     Exception Auxiliary Entry {
+# DEFAULT64-NEXT:       Index: 1
+# DEFAULT64-NEXT:       OffsetToExceptionTable: 0x0
+# DEFAULT64-NEXT:       SizeOfFunction: 0x0
+# DEFAULT64-NEXT:       SymbolIndexOfNextBeyond: 0
+# DEFAULT64-NEXT:       Auxiliary Type: AUX_EXCEPT (0xFF)
+# DEFAULT64-NEXT:     }
+# DEFAULT64-NEXT:     Function Auxiliary Entry {
+# DEFAULT64-NEXT:       Index: 2
+# DEFAULT64-NEXT:       SizeOfFunction: 0x0
+# DEFAULT64-NEXT:       PointerToLineNum: 0x0
+# DEFAULT64-NEXT:       SymbolIndexOfNextBeyond: 0
+# DEFAULT64-NEXT:       Auxiliary Type: AUX_FCN (0xFE)
+# DEFAULT64-NEXT:     }
+# DEFAULT64-NEXT:     CSECT Auxiliary Entry {
+# DEFAULT64-NEXT:       Index: 3
+# DEFAULT64-NEXT:       SectionLen: 0
+# DEFAULT64-NEXT:       ParameterHashIndex: 0x0
+# DEFAULT64-NEXT:       TypeChkSectNum: 0x0
+# DEFAULT64-NEXT:       SymbolAlignmentLog2: 0
+# DEFAULT64-NEXT:       SymbolType: XTY_ER (0x0)
+# DEFAULT64-NEXT:       StorageMappingClass: XMC_PR (0x0)
+# DEFAULT64-NEXT:       Auxiliary Type: AUX_CSECT (0xFB)
+# DEFAULT64-NEXT:     }
+# DEFAULT64-NEXT:   }
+# DEFAULT64-NEXT:   Symbol {
+# DEFAULT64-NEXT:     Index: 4
+# DEFAULT64-NEXT:     Name: aux_sym
+# DEFAULT64-NEXT:     Value (RelocatableAddress): 0x0
+# DEFAULT64-NEXT:     Section: N_UNDEF
+# DEFAULT64-NEXT:     Type: 0x0
+# DEFAULT64-NEXT:     StorageClass: C_BLOCK (0x64)
+# DEFAULT64-NEXT:     NumberOfAuxEntries: 1
+# DEFAULT64-NEXT:     Block Auxiliary Entry {
+# DEFAULT64-NEXT:       Index: 5
+# DEFAULT64-NEXT:       LineNumber: 0x0
+# DEFAULT64-NEXT:       Auxiliary Type: AUX_SYM (0xFD)
+# DEFAULT64-NEXT:     }
+# DEFAULT64-NEXT:   }
+# DEFAULT64-NEXT:   Symbol {
+# DEFAULT64-NEXT:     Index: 6
+# DEFAULT64-NEXT:     Name: aux_file
+# DEFAULT64-NEXT:     Value (SymbolTableIndex): 0x0
+# DEFAULT64-NEXT:     Section: N_UNDEF
+# DEFAULT64-NEXT:     Source Language ID: TB_C (0x0)
+# DEFAULT64-NEXT:     CPU Version ID: 0x0
+# DEFAULT64-NEXT:     StorageClass: C_FILE (0x67)
+# DEFAULT64-NEXT:     NumberOfAuxEntries: 1
+# DEFAULT64-NEXT:     File Auxiliary Entry {
+# DEFAULT64-NEXT:       Index: 7
+# DEFAULT64-NEXT:       Name: 
+# DEFAULT64-NEXT:       Type: XFT_FN (0x0)
+# DEFAULT64-NEXT:       Auxiliary Type: AUX_FILE (0xFC)
+# DEFAULT64-NEXT:     }
+# DEFAULT64-NEXT:   }
+# DEFAULT64-NEXT:   Symbol {
+# DEFAULT64-NEXT:     Index: 8
+# DEFAULT64-NEXT:     Name: aux_sect
+# DEFAULT64-NEXT:     Value (OffsetInDWARF): 0x0
+# DEFAULT64-NEXT:     Section: N_UNDEF
+# DEFAULT64-NEXT:     Type: 0x0
+# DEFAULT64-NEXT:     StorageClass: C_DWARF (0x70)
+# DEFAULT64-NEXT:     NumberOfAuxEntries: 1
+# DEFAULT64-NEXT:     Sect Auxiliary Entry For DWARF {
+# DEFAULT64-NEXT:       Index: 9
+# DEFAULT64-NEXT:       LengthOfSectionPortion: 0x0
+# DEFAULT64-NEXT:       NumberOfRelocEntries: 0
+# DEFAULT64-NEXT:       Auxiliary Type: AUX_SECT (0xFA)
+# DEFAULT64-NEXT:     }
+# DEFAULT64-NEXT:   }
+# DEFAULT64-NEXT: ]
+
+--- !XCOFF
+FileHeader:
+  MagicNumber: 0x1F7
+Symbols:
+  - Name:               aux_except_fcn_csect
+    StorageClass:       C_EXT
+    Type:               0x20
+    AuxEntries:
+      - Type:                 AUX_EXCEPT
+        OffsetToExceptionTbl: [[OFFTOEXP=<none>]]
+        SizeOfFunction:       [[SIZEOFFUN=<none>]]
+        SymIdxOfNextBeyond:   [[SYMIDXOFNEXT=<none>]]
+      - Type:               AUX_FCN
+        SizeOfFunction:     [[SIZEOFFUN2=<none>]]
+        SymIdxOfNextBeyond: [[SYMIDXOFNEXT2=<none>]]
+        PtrToLineNum:       [[PTRTOLINE=<none>]]
+      - Type:                   AUX_CSECT
+        ParameterHashIndex:     [[HASHIDX=<none>]]
+        TypeChkSectNum:         [[TYPECHKNUM=<none>]]
+        SymbolAlignmentAndType: [[SYMALIGN=<none>]]
+        StorageMappingClass:    [[STORMAPCLASS=<none>]]
+        SectionOrLengthLo:      [[SECTLENLO=<none>]]
+        SectionOrLengthHi:      [[SECTLENHI=<none>]]
+  - Name:               aux_sym
+    StorageClass:       C_BLOCK
+    AuxEntries:
+      - Type:    AUX_SYM
+        LineNum: [[LINENUM=<none>]]
+  - Name:               aux_file
+    StorageClass:       C_FILE
+    AuxEntries:
+      - Type:             AUX_FILE
+        FileNameOrString: [[FILENAME=<none>]]
+        FileStringType:   [[FILETYPE=<none>]]
+  - Name:               aux_sect
+    StorageClass:       C_DWARF
+    AuxEntries:
+      - Type:                   AUX_SECT
+        LengthOfSectionPortion: [[LENOFSEC=<none>]]
+        NumberOfRelocEnt:       [[NUMOFRELOC=<none>]]
+
+## Case4: check the non-default behaviour in XCOFF64.
+# RUN: yaml2obj %s --docnum=2 -o %t4 -DOFFTOEXP=2 -DSIZEOFFUN=3 \
+# RUN:   -DSYMIDXOFNEXT=4 -DSIZEOFFUN2=2 -DSYMIDXOFNEXT2=3 -DPTRTOLINE=4 \
+# RUN:   -DHASHIDX=2 -DTYPECHKNUM=3 -DSYMALIGN=4 -DSTORMAPCLASS=XMC_RO \
+# RUN:   -DSECTLENLO=5 -DSECTLENHI=1 -DLINENUM=2 -DFILENAME='fname' \
+# RUN:   -DFILETYPE=XFT_CD -DLENOFSEC=2 -DNUMOFRELOC=3
+# RUN: llvm-readobj --syms %t4 | FileCheck %s --check-prefix=NON-DEFAULT64
+
+# NON-DEFAULT64:      Symbols [
+# NON-DEFAULT64-NEXT:   Symbol {
+# NON-DEFAULT64-NEXT:     Index: 0
+# NON-DEFAULT64-NEXT:     Name: aux_except_fcn_csect
+# NON-DEFAULT64-NEXT:     Value (RelocatableAddress): 0x0
+# NON-DEFAULT64-NEXT:     Section: N_UNDEF
+# NON-DEFAULT64-NEXT:     Type: 0x20
+# NON-DEFAULT64-NEXT:     StorageClass: C_EXT (0x2)
+# NON-DEFAULT64-NEXT:     NumberOfAuxEntries: 3
+# NON-DEFAULT64-NEXT:     Exception Auxiliary Entry {
+# NON-DEFAULT64-NEXT:       Index: 1
+# NON-DEFAULT64-NEXT:       OffsetToExceptionTable: 0x2
+# NON-DEFAULT64-NEXT:       SizeOfFunction: 0x3
+# NON-DEFAULT64-NEXT:       SymbolIndexOfNextBeyond: 4
+# NON-DEFAULT64-NEXT:       Auxiliary Type: AUX_EXCEPT (0xFF)
+# NON-DEFAULT64-NEXT:     }
+# NON-DEFAULT64-NEXT:     Function Auxiliary Entry {
+# NON-DEFAULT64-NEXT:       Index: 2
+# NON-DEFAULT64-NEXT:       SizeOfFunction: 0x2
+# NON-DEFAULT64-NEXT:       PointerToLineNum: 0x4
+# NON-DEFAULT64-NEXT:       SymbolIndexOfNextBeyond: 3
+# NON-DEFAULT64-NEXT:       Auxiliary Type: AUX_FCN (0xFE)
+# NON-DEFAULT64-NEXT:     }
+# NON-DEFAULT64-NEXT:     CSECT Auxiliary Entry {
+# NON-DEFAULT64-NEXT:       Index: 3
+# NON-DEFAULT64-NEXT:       SectionLen: 4294967301
+# NON-DEFAULT64-NEXT:       ParameterHashIndex: 0x2
+# NON-DEFAULT64-NEXT:       TypeChkSectNum: 0x3
+# NON-DEFAULT64-NEXT:       SymbolAlignmentLog2: 0
+# NON-DEFAULT64-NEXT:       SymbolType: 0x4
+# NON-DEFAULT64-NEXT:       StorageMappingClass: XMC_RO (0x1)
+# NON-DEFAULT64-NEXT:       Auxiliary Type: AUX_CSECT (0xFB)
+# NON-DEFAULT64-NEXT:     }
+# NON-DEFAULT64-NEXT:   }
+# NON-DEFAULT64-NEXT:   Symbol {
+# NON-DEFAULT64-NEXT:     Index: 4
+# NON-DEFAULT64-NEXT:     Name: aux_sym
+# NON-DEFAULT64-NEXT:     Value (RelocatableAddress): 0x0
+# NON-DEFAULT64-NEXT:     Section: N_UNDEF
+# NON-DEFAULT64-NEXT:     Type: 0x0
+# NON-DEFAULT64-NEXT:     StorageClass: C_BLOCK (0x64)
+# NON-DEFAULT64-NEXT:     NumberOfAuxEntries: 1
+# NON-DEFAULT64-NEXT:     Block Auxiliary Entry {
+# NON-DEFAULT64-NEXT:       Index: 5
+# NON-DEFAULT64-NEXT:       LineNumber: 0x2
+# NON-DEFAULT64-NEXT:       Auxiliary Type: AUX_SYM (0xFD)
+# NON-DEFAULT64-NEXT:     }
+# NON-DEFAULT64-NEXT:   }
+# NON-DEFAULT64-NEXT:   Symbol {
+# NON-DEFAULT64-NEXT:     Index: 6
+# NON-DEFAULT64-NEXT:     Name: aux_file
+# NON-DEFAULT64-NEXT:     Value (SymbolTableIndex): 0x0
+# NON-DEFAULT64-NEXT:     Section: N_UNDEF
+# NON-DEFAULT64-NEXT:     Source Language ID: TB_C (0x0)
+# NON-DEFAULT64-NEXT:     CPU Version ID: 0x0
+# NON-DEFAULT64-NEXT:     StorageClass: C_FILE (0x67)
+# NON-DEFAULT64-NEXT:     NumberOfAuxEntries: 1
+# NON-DEFAULT64-NEXT:     File Auxiliary Entry {
+# NON-DEFAULT64-NEXT:       Index: 7
+# NON-DEFAULT64-NEXT:       Name: fname
+# NON-DEFAULT64-NEXT:       Type: XFT_CD (0x80)
+# NON-DEFAULT64-NEXT:       Auxiliary Type: AUX_FILE (0xFC)
+# NON-DEFAULT64-NEXT:     }
+# NON-DEFAULT64-NEXT:   }
+# NON-DEFAULT64-NEXT:   Symbol {
+# NON-DEFAULT64-NEXT:     Index: 8
+# NON-DEFAULT64-NEXT:     Name: aux_sect
+# NON-DEFAULT64-NEXT:     Value (OffsetInDWARF): 0x0
+# NON-DEFAULT64-NEXT:     Section: N_UNDEF
+# NON-DEFAULT64-NEXT:     Type: 0x0
+# NON-DEFAULT64-NEXT:     StorageClass: C_DWARF (0x70)
+# NON-DEFAULT64-NEXT:     NumberOfAuxEntries: 1
+# NON-DEFAULT64-NEXT:     Sect Auxiliary Entry For DWARF {
+# NON-DEFAULT64-NEXT:       Index: 9
+# NON-DEFAULT64-NEXT:       LengthOfSectionPortion: 0x2
+# NON-DEFAULT64-NEXT:       NumberOfRelocEntries: 3
+# NON-DEFAULT64-NEXT:       Auxiliary Type: AUX_SECT (0xFA)
+# NON-DEFAULT64-NEXT:     }
+# NON-DEFAULT64-NEXT:   }
+# NON-DEFAULT64-NEXT: ]
+
+## Case5: a file name longer than 8 bytes in the AUX_FILE symbol
+##        is stored in the string table.
+# RUN: yaml2obj %s --docnum=3 -o %t5
+# RUN: llvm-readobj --syms --string-table %t5 | FileCheck %s \
+# RUN:   --check-prefix=FILENAME
+
+# FILENAME:      Symbols [
+# FILENAME-NEXT:   Symbol {
+# FILENAME-NEXT:     Index: 0
+# FILENAME-NEXT:     Name: aux_file
+# FILENAME-NEXT:     Value (SymbolTableIndex): 0x0
+# FILENAME-NEXT:     Section: N_UNDEF
+# FILENAME-NEXT:     Source Language ID: TB_C (0x0)
+# FILENAME-NEXT:     CPU Version ID: 0x0
+# FILENAME-NEXT:     StorageClass: C_FILE (0x67)
+# FILENAME-NEXT:     NumberOfAuxEntries: 1
+# FILENAME-NEXT:     File Auxiliary Entry {
+# FILENAME-NEXT:       Index: 1
+# FILENAME-NEXT:       Name: fileNameInStringTable
+# FILENAME-NEXT:       Type: XFT_CD (0x80)
+# FILENAME-NEXT:     }
+# FILENAME-NEXT:   }
+# FILENAME-NEXT: ]
+# FILENAME-NEXT: StringTable {
+# FILENAME-NEXT:   Length: 26
+# FILENAME-NEXT:   [     4]   fileNameInStringTable  
+# FILENAME-NEXT: }
+
+--- !XCOFF
+FileHeader:
+  MagicNumber: 0x1DF
+Symbols:
+  - Name:               aux_file
+    StorageClass:       C_FILE
+    NumberOfAuxEntries: 1
+    AuxEntries:
+      - Type:             AUX_FILE
+        FileNameOrString: fileNameInStringTable
+        FileStringType:   XFT_CD
+
+## Case6: show that yaml2obj reports an error when trying to write
+##        the AUX_STAT symbol for XCOFF64.
+# RUN: not yaml2obj %s --docnum=4 -o %t6 2>&1 | FileCheck %s \
+# RUN:   --check-prefix=STAT64
+
+# STAT64: error: an auxiliary symbol of type AUX_STAT cannot be defined in XCOFF64
+
+--- !XCOFF
+FileHeader:
+  MagicNumber: 0x1F7
+Symbols:
+  - StorageClass:       C_STAT
+    NumberOfAuxEntries: 1
+    AuxEntries:
+      - Type: AUX_STAT
+
+## Case7: show that yaml2obj reports an error when trying to write
+##        the AUX_EXCEPT symbol for XCOFF32.
+# RUN: not yaml2obj %s --docnum=5 -o %t7 2>&1 | FileCheck %s \
+# RUN:   --check-prefix=EXCEPT32
+
+# EXCEPT32: error: an auxiliary symbol of type AUX_EXCEPT cannot be defined in XCOFF32
+
+--- !XCOFF
+FileHeader:
+  MagicNumber: 0x1DF
+Symbols:
+  - StorageClass:       C_EXT
+    NumberOfAuxEntries: 1
+    AuxEntries:
+      - Type: AUX_EXCEPT
+
+## Case8: show that yaml2obj reports an error when the specified value
+##        of NumberOfAuxEntries is less than the actual number.
+# RUN: not yaml2obj %s --docnum=6 -o %t8 2>&1 | FileCheck %s \
+# RUN:   --check-prefix=AUXCOUNT
+
+# AUXCOUNT: yaml2obj: error: specified NumberOfAuxEntries 1 is less than the actual number of auxiliary entries 2
+
+--- !XCOFF
+FileHeader:
+  MagicNumber: 0x1DF
+Symbols:
+  - StorageClass:       C_EXT
+    NumberOfAuxEntries: 1
+    AuxEntries:
+      - Type: AUX_FCN
+      - Type: AUX_CSECT
+
+## Case9: pad with zeros when the specified value of NumberOfAuxEntries
+##        is greater than the actual number.
+# RUN: yaml2obj %s --docnum=7 -o %t9
+# RUN: llvm-readobj --syms %t9 | FileCheck %s --check-prefix=AUXNUM
+
+# AUXNUM:      Symbols [
+# AUXNUM-NEXT:   Symbol {
+# AUXNUM-NEXT:     Index: 0
+# AUXNUM-NEXT:     Name: 
+# AUXNUM-NEXT:     Value (SymbolTableIndex): 0x0
+# AUXNUM-NEXT:     Section: N_UNDEF
+# AUXNUM-NEXT:     Source Language ID: TB_C (0x0)
+# AUXNUM-NEXT:     CPU Version ID: 0x0
+# AUXNUM-NEXT:     StorageClass: C_FILE (0x67)
+# AUXNUM-NEXT:     NumberOfAuxEntries: 2
+# AUXNUM-NEXT:     File Auxiliary Entry {
+# AUXNUM-NEXT:       Index: 1
+# AUXNUM-NEXT:       Name: foo
+# AUXNUM-NEXT:       Type: XFT_FN (0x0)
+# AUXNUM-NEXT:     }
+# AUXNUM-NEXT:     File Auxiliary Entry {
+# AUXNUM-NEXT:       Index: 2
+# AUXNUM-NEXT:       Name: 
+# AUXNUM-NEXT:       Type: XFT_FN (0x0)
+# AUXNUM-NEXT:     }
+# AUXNUM-NEXT:   }
+# AUXNUM-NEXT: ]
+
+--- !XCOFF
+FileHeader:
+  MagicNumber: 0x1DF
+Symbols:
+  - StorageClass:       C_FILE
+    NumberOfAuxEntries: 2
+    AuxEntries:
+      - Type: AUX_FILE
+        FileNameOrString: foo


        


More information about the llvm-commits mailing list