# This file tests the ability of llvm-readobj to display the symbol table for a
# 32-bit XCOFF object file.
RUN: llvm-readobj --symbols %p/Inputs/aix_xcoff_xlc_test8.o | \
RUN: FileCheck --check-prefix=SYMBOL32 %s

SYMBOL32: File: {{.*}}aix_xcoff_xlc_test8.o
SYMBOL32-NEXT: Format: aixcoff-rs6000
SYMBOL32-NEXT: Arch: powerpc
SYMBOL32-NEXT: AddressSize: 32bit
SYMBOL32-NEXT: Symbols [
SYMBOL32-NEXT:   Symbol {
SYMBOL32-NEXT:     Index: 0
SYMBOL32-NEXT:     Name: .file
SYMBOL32-NEXT:     Value (SymbolTableIndex): 0x0
SYMBOL32-NEXT:     Section: N_DEBUG
SYMBOL32-NEXT:     Source Language ID: TB_C (0x0)
SYMBOL32-NEXT:     CPU Version ID: TCPU_COM (0x3)
SYMBOL32-NEXT:     StorageClass: C_FILE (0x67)
SYMBOL32-NEXT:     NumberOfAuxEntries: 3
SYMBOL32-NEXT:     File Auxiliary Entry {
SYMBOL32-NEXT:       Index: 1
SYMBOL32-NEXT:       Name: test8.c
SYMBOL32-NEXT:       Type: XFT_FN (0x0)
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:     File Auxiliary Entry {
SYMBOL32-NEXT:       Index: 2
SYMBOL32-NEXT:       Name: Sun Apr 28 15:56:49 2019
SYMBOL32-NEXT:       Type: XFT_CT (0x1)
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:     File Auxiliary Entry {
SYMBOL32-NEXT:       Index: 3
SYMBOL32-NEXT:       Name: IBM XL C for AIX, Version 16.1.0.2
SYMBOL32-NEXT:       Type: XFT_CV (0x2)
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:   }
SYMBOL32-NEXT:   Symbol {
SYMBOL32-NEXT:     Index: 4
SYMBOL32-NEXT:     Name: .text
SYMBOL32-NEXT:     Value (RelocatableAddress): 0x0
SYMBOL32-NEXT:     Section: .text
SYMBOL32-NEXT:     Type: 0x0
SYMBOL32-NEXT:     StorageClass: C_STAT (0x3)
SYMBOL32-NEXT:     NumberOfAuxEntries: 1
SYMBOL32-NEXT:     Sect Auxiliary Entry For Stat {
SYMBOL32-NEXT:       Index: 5
SYMBOL32-NEXT:       SectionLength: 256
SYMBOL32-NEXT:       NumberOfRelocEnt: 4
SYMBOL32-NEXT:       NumberOfLineNum: 0
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:   }
SYMBOL32-NEXT:   Symbol {
SYMBOL32-NEXT:     Index: 6
SYMBOL32-NEXT:     Name: .data
SYMBOL32-NEXT:     Value (RelocatableAddress): 0x100
SYMBOL32-NEXT:     Section: .data
SYMBOL32-NEXT:     Type: 0x0
SYMBOL32-NEXT:     StorageClass: C_STAT (0x3)
SYMBOL32-NEXT:     NumberOfAuxEntries: 1
SYMBOL32-NEXT:     Sect Auxiliary Entry For Stat {
SYMBOL32-NEXT:       Index: 7
SYMBOL32-NEXT:       SectionLength: 60
SYMBOL32-NEXT:       NumberOfRelocEnt: 11
SYMBOL32-NEXT:       NumberOfLineNum: 0
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:   }
SYMBOL32-NEXT:   Symbol {
SYMBOL32-NEXT:     Index: 8
SYMBOL32-NEXT:     Name: .bss
SYMBOL32-NEXT:     Value (RelocatableAddress): 0x13C
SYMBOL32-NEXT:     Section: .bss
SYMBOL32-NEXT:     Type: 0x0
SYMBOL32-NEXT:     StorageClass: C_STAT (0x3)
SYMBOL32-NEXT:     NumberOfAuxEntries: 1
SYMBOL32-NEXT:     Sect Auxiliary Entry For Stat {
SYMBOL32-NEXT:       Index: 9
SYMBOL32-NEXT:       SectionLength: 4
SYMBOL32-NEXT:       NumberOfRelocEnt: 0
SYMBOL32-NEXT:       NumberOfLineNum: 0
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:   }
SYMBOL32-NEXT:   Symbol {
SYMBOL32-NEXT:     Index: 10
SYMBOL32-NEXT:     Name:
SYMBOL32-NEXT:     Value (RelocatableAddress): 0x0
SYMBOL32-NEXT:     Section: .text
SYMBOL32-NEXT:     Type: 0x0
SYMBOL32-NEXT:     StorageClass: C_HIDEXT (0x6B)
SYMBOL32-NEXT:     NumberOfAuxEntries: 1
SYMBOL32-NEXT:     CSECT Auxiliary Entry {
SYMBOL32-NEXT:       Index: 11
SYMBOL32-NEXT:       SectionLen: 256
SYMBOL32-NEXT:       ParameterHashIndex: 0x0
SYMBOL32-NEXT:       TypeChkSectNum: 0x0
SYMBOL32-NEXT:       SymbolAlignmentLog2: 7
SYMBOL32-NEXT:       SymbolType: XTY_SD (0x1)
SYMBOL32-NEXT:       StorageMappingClass: XMC_PR (0x0)
SYMBOL32-NEXT:       StabInfoIndex: 0x0
SYMBOL32-NEXT:       StabSectNum: 0x0
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:   }
SYMBOL32-NEXT:   Symbol {
SYMBOL32-NEXT:     Index: 12
SYMBOL32-NEXT:     Name: .fun1
SYMBOL32-NEXT:     Value (RelocatableAddress): 0x0
SYMBOL32-NEXT:     Section: .text
SYMBOL32-NEXT:     Type: 0x20
SYMBOL32-NEXT:     StorageClass: C_EXT (0x2)
SYMBOL32-NEXT:     NumberOfAuxEntries: 1
SYMBOL32-NEXT:     CSECT Auxiliary Entry {
SYMBOL32-NEXT:       Index: 13
SYMBOL32-NEXT:       ContainingCsectSymbolIndex: 10
SYMBOL32-NEXT:       ParameterHashIndex: 0x0
SYMBOL32-NEXT:       TypeChkSectNum: 0x0
SYMBOL32-NEXT:       SymbolAlignmentLog2: 0
SYMBOL32-NEXT:       SymbolType: XTY_LD (0x2)
SYMBOL32-NEXT:       StorageMappingClass: XMC_PR (0x0)
SYMBOL32-NEXT:       StabInfoIndex: 0x0
SYMBOL32-NEXT:       StabSectNum: 0x0
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:   }
SYMBOL32-NEXT:   Symbol {
SYMBOL32-NEXT:     Index: 14
SYMBOL32-NEXT:     Name: .main
SYMBOL32-NEXT:     Value (RelocatableAddress): 0x60
SYMBOL32-NEXT:     Section: .text
SYMBOL32-NEXT:     Type: 0x20
SYMBOL32-NEXT:     StorageClass: C_EXT (0x2)
SYMBOL32-NEXT:     NumberOfAuxEntries: 1
SYMBOL32-NEXT:     CSECT Auxiliary Entry {
SYMBOL32-NEXT:       Index: 15
SYMBOL32-NEXT:       ContainingCsectSymbolIndex: 10
SYMBOL32-NEXT:       ParameterHashIndex: 0x0
SYMBOL32-NEXT:       TypeChkSectNum: 0x0
SYMBOL32-NEXT:       SymbolAlignmentLog2: 0
SYMBOL32-NEXT:       SymbolType: XTY_LD (0x2)
SYMBOL32-NEXT:       StorageMappingClass: XMC_PR (0x0)
SYMBOL32-NEXT:       StabInfoIndex: 0x0
SYMBOL32-NEXT:       StabSectNum: 0x0
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:   }
SYMBOL32-NEXT:   Symbol {
SYMBOL32-NEXT:     Index: 16
SYMBOL32-NEXT:     Name: TOC
SYMBOL32-NEXT:     Value (RelocatableAddress): 0x100
SYMBOL32-NEXT:     Section: .data
SYMBOL32-NEXT:     Type: 0x0
SYMBOL32-NEXT:     StorageClass: C_HIDEXT (0x6B)
SYMBOL32-NEXT:     NumberOfAuxEntries: 1
SYMBOL32-NEXT:     CSECT Auxiliary Entry {
SYMBOL32-NEXT:       Index: 17
SYMBOL32-NEXT:       SectionLen: 0
SYMBOL32-NEXT:       ParameterHashIndex: 0x0
SYMBOL32-NEXT:       TypeChkSectNum: 0x0
SYMBOL32-NEXT:       SymbolAlignmentLog2: 2
SYMBOL32-NEXT:       SymbolType: XTY_SD (0x1)
SYMBOL32-NEXT:       StorageMappingClass: XMC_TC0 (0xF)
SYMBOL32-NEXT:       StabInfoIndex: 0x0
SYMBOL32-NEXT:       StabSectNum: 0x0
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:   }
SYMBOL32-NEXT:   Symbol {
SYMBOL32-NEXT:     Index: 18
SYMBOL32-NEXT:     Name:
SYMBOL32-NEXT:     Value (RelocatableAddress): 0x114
SYMBOL32-NEXT:     Section: .data
SYMBOL32-NEXT:     Type: 0x0
SYMBOL32-NEXT:     StorageClass: C_HIDEXT (0x6B)
SYMBOL32-NEXT:     NumberOfAuxEntries: 1
SYMBOL32-NEXT:     CSECT Auxiliary Entry {
SYMBOL32-NEXT:       Index: 19
SYMBOL32-NEXT:       SectionLen: 4
SYMBOL32-NEXT:       ParameterHashIndex: 0x0
SYMBOL32-NEXT:       TypeChkSectNum: 0x0
SYMBOL32-NEXT:       SymbolAlignmentLog2: 2
SYMBOL32-NEXT:       SymbolType: XTY_SD (0x1)
SYMBOL32-NEXT:       StorageMappingClass: XMC_TC (0x3)
SYMBOL32-NEXT:       StabInfoIndex: 0x0
SYMBOL32-NEXT:       StabSectNum: 0x0
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:   }
SYMBOL32-NEXT:   Symbol {
SYMBOL32-NEXT:     Index: 20
SYMBOL32-NEXT:     Name:
SYMBOL32-NEXT:     Value (RelocatableAddress): 0x134
SYMBOL32-NEXT:     Section: .data
SYMBOL32-NEXT:     Type: 0x0
SYMBOL32-NEXT:     StorageClass: C_HIDEXT (0x6B)
SYMBOL32-NEXT:     NumberOfAuxEntries: 1
SYMBOL32-NEXT:     CSECT Auxiliary Entry {
SYMBOL32-NEXT:       Index: 21
SYMBOL32-NEXT:       SectionLen: 5
SYMBOL32-NEXT:       ParameterHashIndex: 0x0
SYMBOL32-NEXT:       TypeChkSectNum: 0x0
SYMBOL32-NEXT:       SymbolAlignmentLog2: 3
SYMBOL32-NEXT:       SymbolType: XTY_SD (0x1)
SYMBOL32-NEXT:       StorageMappingClass: XMC_RO (0x1)
SYMBOL32-NEXT:       StabInfoIndex: 0x0
SYMBOL32-NEXT:       StabSectNum: 0x0
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:   }
SYMBOL32-NEXT:   Symbol {
SYMBOL32-NEXT:     Index: 22
SYMBOL32-NEXT:     Name: _$STATIC_BSS
SYMBOL32-NEXT:     Value (RelocatableAddress): 0x13C
SYMBOL32-NEXT:     Section: .bss
SYMBOL32-NEXT:     Type: 0x0
SYMBOL32-NEXT:     StorageClass: C_HIDEXT (0x6B)
SYMBOL32-NEXT:     NumberOfAuxEntries: 1
SYMBOL32-NEXT:     CSECT Auxiliary Entry {
SYMBOL32-NEXT:       Index: 23
SYMBOL32-NEXT:       SectionLen: 4
SYMBOL32-NEXT:       ParameterHashIndex: 0x0
SYMBOL32-NEXT:       TypeChkSectNum: 0x0
SYMBOL32-NEXT:       SymbolAlignmentLog2: 2
SYMBOL32-NEXT:       SymbolType: XTY_CM (0x3)
SYMBOL32-NEXT:       StorageMappingClass: XMC_RW (0x5)
SYMBOL32-NEXT:       StabInfoIndex: 0x0
SYMBOL32-NEXT:       StabSectNum: 0x0
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:   }
SYMBOL32-NEXT:   Symbol {
SYMBOL32-NEXT:     Index: 24
SYMBOL32-NEXT:     Name: _$STATIC_BSS
SYMBOL32-NEXT:     Value (RelocatableAddress): 0x104
SYMBOL32-NEXT:     Section: .data
SYMBOL32-NEXT:     Type: 0x0
SYMBOL32-NEXT:     StorageClass: C_HIDEXT (0x6B)
SYMBOL32-NEXT:     NumberOfAuxEntries: 1
SYMBOL32-NEXT:     CSECT Auxiliary Entry {
SYMBOL32-NEXT:       Index: 25
SYMBOL32-NEXT:       SectionLen: 4
SYMBOL32-NEXT:       ParameterHashIndex: 0x0
SYMBOL32-NEXT:       TypeChkSectNum: 0x0
SYMBOL32-NEXT:       SymbolAlignmentLog2: 2
SYMBOL32-NEXT:       SymbolType: XTY_SD (0x1)
SYMBOL32-NEXT:       StorageMappingClass: XMC_TC (0x3)
SYMBOL32-NEXT:       StabInfoIndex: 0x0
SYMBOL32-NEXT:       StabSectNum: 0x0
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:   }
SYMBOL32-NEXT:   Symbol {
SYMBOL32-NEXT:     Index: 26
SYMBOL32-NEXT:     Name: fun1
SYMBOL32-NEXT:     Value (RelocatableAddress): 0x118
SYMBOL32-NEXT:     Section: .data
SYMBOL32-NEXT:     Type: 0x0
SYMBOL32-NEXT:     StorageClass: C_EXT (0x2)
SYMBOL32-NEXT:     NumberOfAuxEntries: 1
SYMBOL32-NEXT:     CSECT Auxiliary Entry {
SYMBOL32-NEXT:       Index: 27
SYMBOL32-NEXT:       SectionLen: 12
SYMBOL32-NEXT:       ParameterHashIndex: 0x0
SYMBOL32-NEXT:       TypeChkSectNum: 0x0
SYMBOL32-NEXT:       SymbolAlignmentLog2: 2
SYMBOL32-NEXT:       SymbolType: XTY_SD (0x1)
SYMBOL32-NEXT:       StorageMappingClass: XMC_DS (0xA)
SYMBOL32-NEXT:       StabInfoIndex: 0x0
SYMBOL32-NEXT:       StabSectNum: 0x0
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:   }
SYMBOL32-NEXT:   Symbol {
SYMBOL32-NEXT:     Index: 28
SYMBOL32-NEXT:     Name: fun1
SYMBOL32-NEXT:     Value (RelocatableAddress): 0x100
SYMBOL32-NEXT:     Section: .data
SYMBOL32-NEXT:     Type: 0x0
SYMBOL32-NEXT:     StorageClass: C_HIDEXT (0x6B)
SYMBOL32-NEXT:     NumberOfAuxEntries: 1
SYMBOL32-NEXT:     CSECT Auxiliary Entry {
SYMBOL32-NEXT:       Index: 29
SYMBOL32-NEXT:       SectionLen: 4
SYMBOL32-NEXT:       ParameterHashIndex: 0x0
SYMBOL32-NEXT:       TypeChkSectNum: 0x0
SYMBOL32-NEXT:       SymbolAlignmentLog2: 2
SYMBOL32-NEXT:       SymbolType: XTY_SD (0x1)
SYMBOL32-NEXT:       StorageMappingClass: XMC_TC (0x3)
SYMBOL32-NEXT:       StabInfoIndex: 0x0
SYMBOL32-NEXT:       StabSectNum: 0x0
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:   }
SYMBOL32-NEXT:   Symbol {
SYMBOL32-NEXT:     Index: 30
SYMBOL32-NEXT:     Name: p
SYMBOL32-NEXT:     Value (RelocatableAddress): 0x130
SYMBOL32-NEXT:     Section: .data
SYMBOL32-NEXT:     Type: 0x0
SYMBOL32-NEXT:     StorageClass: C_EXT (0x2)
SYMBOL32-NEXT:     NumberOfAuxEntries: 1
SYMBOL32-NEXT:     CSECT Auxiliary Entry {
SYMBOL32-NEXT:       Index: 31
SYMBOL32-NEXT:       SectionLen: 4
SYMBOL32-NEXT:       ParameterHashIndex: 0x0
SYMBOL32-NEXT:       TypeChkSectNum: 0x0
SYMBOL32-NEXT:       SymbolAlignmentLog2: 2
SYMBOL32-NEXT:       SymbolType: XTY_SD (0x1)
SYMBOL32-NEXT:       StorageMappingClass: XMC_RW (0x5)
SYMBOL32-NEXT:       StabInfoIndex: 0x0
SYMBOL32-NEXT:       StabSectNum: 0x0
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:   }
SYMBOL32-NEXT:   Symbol {
SYMBOL32-NEXT:     Index: 32
SYMBOL32-NEXT:     Name: p
SYMBOL32-NEXT:     Value (RelocatableAddress): 0x108
SYMBOL32-NEXT:     Section: .data
SYMBOL32-NEXT:     Type: 0x0
SYMBOL32-NEXT:     StorageClass: C_HIDEXT (0x6B)
SYMBOL32-NEXT:     NumberOfAuxEntries: 1
SYMBOL32-NEXT:     CSECT Auxiliary Entry {
SYMBOL32-NEXT:       Index: 33
SYMBOL32-NEXT:       SectionLen: 4
SYMBOL32-NEXT:       ParameterHashIndex: 0x0
SYMBOL32-NEXT:       TypeChkSectNum: 0x0
SYMBOL32-NEXT:       SymbolAlignmentLog2: 2
SYMBOL32-NEXT:       SymbolType: XTY_SD (0x1)
SYMBOL32-NEXT:       StorageMappingClass: XMC_TC (0x3)
SYMBOL32-NEXT:       StabInfoIndex: 0x0
SYMBOL32-NEXT:       StabSectNum: 0x0
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:   }
SYMBOL32-NEXT:   Symbol {
SYMBOL32-NEXT:     Index: 34
SYMBOL32-NEXT:     Name: main
SYMBOL32-NEXT:     Value (RelocatableAddress): 0x124
SYMBOL32-NEXT:     Section: .data
SYMBOL32-NEXT:     Type: 0x0
SYMBOL32-NEXT:     StorageClass: C_EXT (0x2)
SYMBOL32-NEXT:     NumberOfAuxEntries: 1
SYMBOL32-NEXT:     CSECT Auxiliary Entry {
SYMBOL32-NEXT:       Index: 35
SYMBOL32-NEXT:       SectionLen: 12
SYMBOL32-NEXT:       ParameterHashIndex: 0x0
SYMBOL32-NEXT:       TypeChkSectNum: 0x0
SYMBOL32-NEXT:       SymbolAlignmentLog2: 2
SYMBOL32-NEXT:       SymbolType: XTY_SD (0x1)
SYMBOL32-NEXT:       StorageMappingClass: XMC_DS (0xA)
SYMBOL32-NEXT:       StabInfoIndex: 0x0
SYMBOL32-NEXT:       StabSectNum: 0x0
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:   }
SYMBOL32-NEXT:   Symbol {
SYMBOL32-NEXT:     Index: 36
SYMBOL32-NEXT:     Name: main
SYMBOL32-NEXT:     Value (RelocatableAddress): 0x10C
SYMBOL32-NEXT:     Section: .data
SYMBOL32-NEXT:     Type: 0x0
SYMBOL32-NEXT:     StorageClass: C_HIDEXT (0x6B)
SYMBOL32-NEXT:     NumberOfAuxEntries: 1
SYMBOL32-NEXT:     CSECT Auxiliary Entry {
SYMBOL32-NEXT:       Index: 37
SYMBOL32-NEXT:       SectionLen: 4
SYMBOL32-NEXT:       ParameterHashIndex: 0x0
SYMBOL32-NEXT:       TypeChkSectNum: 0x0
SYMBOL32-NEXT:       SymbolAlignmentLog2: 2
SYMBOL32-NEXT:       SymbolType: XTY_SD (0x1)
SYMBOL32-NEXT:       StorageMappingClass: XMC_TC (0x3)
SYMBOL32-NEXT:       StabInfoIndex: 0x0
SYMBOL32-NEXT:       StabSectNum: 0x0
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:   }
SYMBOL32-NEXT:   Symbol {
SYMBOL32-NEXT:     Index: 38
SYMBOL32-NEXT:     Name: i
SYMBOL32-NEXT:     Value (RelocatableAddress): 0x0
SYMBOL32-NEXT:     Section: N_UNDEF
SYMBOL32-NEXT:     Type: 0x0
SYMBOL32-NEXT:     StorageClass: C_EXT (0x2)
SYMBOL32-NEXT:     NumberOfAuxEntries: 1
SYMBOL32-NEXT:     CSECT Auxiliary Entry {
SYMBOL32-NEXT:       Index: 39
SYMBOL32-NEXT:       SectionLen: 0
SYMBOL32-NEXT:       ParameterHashIndex: 0x0
SYMBOL32-NEXT:       TypeChkSectNum: 0x0
SYMBOL32-NEXT:       SymbolAlignmentLog2: 0
SYMBOL32-NEXT:       SymbolType: XTY_ER (0x0)
SYMBOL32-NEXT:       StorageMappingClass: XMC_UA (0x4)
SYMBOL32-NEXT:       StabInfoIndex: 0x0
SYMBOL32-NEXT:       StabSectNum: 0x0
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:   }
SYMBOL32-NEXT:   Symbol {
SYMBOL32-NEXT:     Index: 40
SYMBOL32-NEXT:     Name: i
SYMBOL32-NEXT:     Value (RelocatableAddress): 0x110
SYMBOL32-NEXT:     Section: .data
SYMBOL32-NEXT:     Type: 0x0
SYMBOL32-NEXT:     StorageClass: C_HIDEXT (0x6B)
SYMBOL32-NEXT:     NumberOfAuxEntries: 1
SYMBOL32-NEXT:     CSECT Auxiliary Entry {
SYMBOL32-NEXT:       Index: 41
SYMBOL32-NEXT:       SectionLen: 4
SYMBOL32-NEXT:       ParameterHashIndex: 0x0
SYMBOL32-NEXT:       TypeChkSectNum: 0x0
SYMBOL32-NEXT:       SymbolAlignmentLog2: 2
SYMBOL32-NEXT:       SymbolType: XTY_SD (0x1)
SYMBOL32-NEXT:       StorageMappingClass: XMC_TC (0x3)
SYMBOL32-NEXT:       StabInfoIndex: 0x0
SYMBOL32-NEXT:       StabSectNum: 0x0
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:   }
SYMBOL32-NEXT:   Symbol {
SYMBOL32-NEXT:     Index: 42
SYMBOL32-NEXT:     Name: .fun
SYMBOL32-NEXT:     Value (RelocatableAddress): 0x0
SYMBOL32-NEXT:     Section: N_UNDEF
SYMBOL32-NEXT:     Type: 0x0
SYMBOL32-NEXT:     StorageClass: C_EXT (0x2)
SYMBOL32-NEXT:     NumberOfAuxEntries: 1
SYMBOL32-NEXT:     CSECT Auxiliary Entry {
SYMBOL32-NEXT:       Index: 43
SYMBOL32-NEXT:       SectionLen: 0
SYMBOL32-NEXT:       ParameterHashIndex: 0x0
SYMBOL32-NEXT:       TypeChkSectNum: 0x0
SYMBOL32-NEXT:       SymbolAlignmentLog2: 0
SYMBOL32-NEXT:       SymbolType: XTY_ER (0x0)
SYMBOL32-NEXT:       StorageMappingClass: XMC_PR (0x0)
SYMBOL32-NEXT:       StabInfoIndex: 0x0
SYMBOL32-NEXT:       StabSectNum: 0x0
SYMBOL32-NEXT:     }
SYMBOL32-NEXT:   }
SYMBOL32-NEXT: ]

# The object file used is generated by the following source file
# and command on AIX:
#
# > cat test8.c
#
# extern int i;
# extern int TestforXcoff;
# extern int fun(int i);
# static int static_i;
# char* p="abcd";
# int fun1(int j) {
#   static_i++;
#   j++;
#   j=j+*p;
#   return j;
# }
#
# int main() {
#   i++;
#   fun(i);
#   return fun1(i);
# }
#
# > xlc -c test8.c -o aix_xcoff_xlc_test8.o
