; Testing 32-bit and 64-bit exception section entries, no exception auxilliary
; entries should be produced as no debug information is specified.
; RUN: llc -mtriple=powerpc-ibm-aix-xcoff -mcpu=ppc -filetype=obj -o %t_32.o < %s
; RUN: llvm-readobj --exception-section %t_32.o | FileCheck %s --check-prefix=EXCEPT
; RUN: llvm-readobj --section-headers %t_32.o | FileCheck %s --check-prefix=READ
; RUN: llvm-readobj --syms %t_32.o | FileCheck %s --check-prefix=SYMS

; RUN: llc -mtriple=powerpc64-unknown-aix -mcpu=ppc -filetype=obj -o %t_64.o < %s
; RUN: llvm-readobj --exception-section %t_64.o | FileCheck %s --check-prefix=EXCEPT64
; RUN: llvm-readobj --section-headers %t_64.o | FileCheck %s --check-prefix=READ64
; RUN: llvm-readobj --syms %t_64.o | FileCheck %s --check-prefix=SYMS64

!1 = !{!"ppc-trap-reason", !"1", !"2"}
declare void @llvm.ppc.trap(i32 %a)
define dso_local void @sub_test() {
  call void @llvm.ppc.trap(i32 1), !annotation !1
  ret void
}
define dso_local void @test__trap_annotation(i32 %a) {
  call void @llvm.ppc.trap(i32 %a), !annotation !1
  call void @sub_test()
  call void @llvm.ppc.trap(i32 %a), !annotation !1
  ret void
}

; EXCEPT:       Exception section {
; EXCEPT-NEXT:    Symbol: .sub_test
; EXCEPT-NEXT:    LangID: 0
; EXCEPT-NEXT:    Reason: 0
; EXCEPT-NEXT:    Trap Instr Addr: 0x4
; EXCEPT-NEXT:    LangID: 1
; EXCEPT-NEXT:    Reason: 2
; EXCEPT-NEXT:    Symbol: .test__trap_annotation
; EXCEPT-NEXT:    LangID: 0
; EXCEPT-NEXT:    Reason: 0
; EXCEPT-NEXT:    Trap Instr Addr: 0x3C
; EXCEPT-NEXT:    LangID: 1
; EXCEPT-NEXT:    Reason: 2
; EXCEPT-NEXT:    Trap Instr Addr: 0x44
; EXCEPT-NEXT:    LangID: 1
; EXCEPT-NEXT:    Reason: 2
; EXCEPT-NEXT:  }

; There are multiple "Section {" lines in the readobj output so we need to start this READ check
; on a unique line (Type: STYP_DATA (0x40)) so that the checks know where to start reading
; READ:           Type: STYP_DATA (0x40)
; READ-NEXT:    }
; READ-NEXT:    Section {
; READ-NEXT:      Index: 3
; READ-NEXT:      Name: .except
; READ-NEXT:      PhysicalAddress: 0x0
; READ-NEXT:      VirtualAddress: 0x0
; READ-NEXT:      Size: 0x1E
; READ-NEXT:      RawDataOffset: 0x12C
; READ-NEXT:      RelocationPointer: 0x0
; READ-NEXT:      LineNumberPointer: 0x0
; READ-NEXT:      NumberOfRelocations: 0
; READ-NEXT:      NumberOfLineNumbers: 0
; READ-NEXT:      Type: STYP_EXCEPT (0x100)
; READ-NEXT:    }
; READ-NEXT:  ]

; SYMS:           Index: [[#IND:]]{{.*}}{{[[:space:]] *}}Name: .sub_test
; SYMS-NEXT:      Value (RelocatableAddress): 0x0
; SYMS-NEXT:      Section: .text
; SYMS-NEXT:      Type: 0x20
; SYMS-NEXT:      StorageClass: C_EXT (0x2)
; SYMS-NEXT:      NumberOfAuxEntries: 2
; SYMS-NEXT:      Function Auxiliary Entry {
; SYMS-NEXT:        Index: [[#IND+1]]
; SYMS-NEXT:        OffsetToExceptionTable: 0x12C
; SYMS-NEXT:        SizeOfFunction: 0xC
; SYMS-NEXT:        PointerToLineNum: 0x0
; SYMS-NEXT:        SymbolIndexOfNextBeyond: [[#IND+3]]
; SYMS-NEXT:      }
; SYMS-NEXT:      CSECT Auxiliary Entry {
; SYMS-NEXT:        Index: [[#IND+2]]
; SYMS-NEXT:        ContainingCsectSymbolIndex: [[#IND-2]]
; SYMS-NEXT:        ParameterHashIndex: 0x0
; SYMS-NEXT:        TypeChkSectNum: 0x0
; SYMS-NEXT:        SymbolAlignmentLog2: 0
; SYMS-NEXT:        SymbolType: XTY_LD (0x2)
; SYMS-NEXT:        StorageMappingClass: XMC_PR (0x0)
; SYMS-NEXT:        StabInfoIndex: 0x0
; SYMS-NEXT:        StabSectNum: 0x0
; SYMS-NEXT:      }
; SYMS-NEXT:    }
; SYMS-NEXT:    Symbol {
; SYMS-NEXT:      Index: [[#IND+3]]
; SYMS-NEXT:      Name: .test__trap_annotation
; SYMS-NEXT:      Value (RelocatableAddress): 0x28
; SYMS-NEXT:      Section: .text
; SYMS-NEXT:      Type: 0x20
; SYMS-NEXT:      StorageClass: C_EXT (0x2)
; SYMS-NEXT:      NumberOfAuxEntries: 2
; SYMS-NEXT:      Function Auxiliary Entry {
; SYMS-NEXT:        Index: [[#IND+4]]
; SYMS-NEXT:        OffsetToExceptionTable: 0x138
; SYMS-NEXT:        SizeOfFunction: 0x34
; SYMS-NEXT:        PointerToLineNum: 0x0
; SYMS-NEXT:        SymbolIndexOfNextBeyond: [[#IND+6]]
; SYMS-NEXT:      }
; SYMS-NEXT:      CSECT Auxiliary Entry {
; SYMS-NEXT:        Index: [[#IND+5]]
; SYMS-NEXT:        ContainingCsectSymbolIndex: [[#IND-2]]
; SYMS-NEXT:        ParameterHashIndex: 0x0
; SYMS-NEXT:        TypeChkSectNum: 0x0
; SYMS-NEXT:        SymbolAlignmentLog2: 0
; SYMS-NEXT:        SymbolType: XTY_LD (0x2)
; SYMS-NEXT:        StorageMappingClass: XMC_PR (0x0)
; SYMS-NEXT:        StabInfoIndex: 0x0
; SYMS-NEXT:        StabSectNum: 0x0
; SYMS-NEXT:      }
; SYMS-NEXT:    }

; EXCEPT64:       Exception section {
; EXCEPT64-NEXT:    Symbol: .sub_test
; EXCEPT64-NEXT:    LangID: 0
; EXCEPT64-NEXT:    Reason: 0
; EXCEPT64-NEXT:    Trap Instr Addr: 0x4
; EXCEPT64-NEXT:    LangID: 1
; EXCEPT64-NEXT:    Reason: 2
; EXCEPT64-NEXT:    Symbol: .test__trap_annotation
; EXCEPT64-NEXT:    LangID: 0
; EXCEPT64-NEXT:    Reason: 0
; EXCEPT64-NEXT:    Trap Instr Addr: 0x3C
; EXCEPT64-NEXT:    LangID: 1
; EXCEPT64-NEXT:    Reason: 2
; EXCEPT64-NEXT:    Trap Instr Addr: 0x44
; EXCEPT64-NEXT:    LangID: 1
; EXCEPT64-NEXT:    Reason: 2
; EXCEPT64-NEXT:  }

; READ64:           Type: STYP_DATA (0x40)
; READ64-NEXT:    }
; READ64-NEXT:    Section {
; READ64-NEXT:      Index: 3
; READ64-NEXT:      Name: .except
; READ64-NEXT:      PhysicalAddress: 0x0
; READ64-NEXT:      VirtualAddress: 0x0
; READ64-NEXT:      Size: 0x32
; READ64-NEXT:      RawDataOffset: 0x1A8
; READ64-NEXT:      RelocationPointer: 0x0
; READ64-NEXT:      LineNumberPointer: 0x0
; READ64-NEXT:      NumberOfRelocations: 0
; READ64-NEXT:      NumberOfLineNumbers: 0
; READ64-NEXT:      Type: STYP_EXCEPT (0x100)
; READ64-NEXT:    }
; READ64-NEXT:  ]

; SYMS64:           Index: [[#IND:]]{{.*}}{{[[:space:]] *}}Name: .sub_test
; SYMS64-NEXT:      Value (RelocatableAddress): 0x0
; SYMS64-NEXT:      Section: .text
; SYMS64-NEXT:      Type: 0x0
; SYMS64-NEXT:      StorageClass: C_EXT (0x2)
; SYMS64-NEXT:      NumberOfAuxEntries: 2
; SYMS64-NEXT:      Function Auxiliary Entry {
; SYMS64-NEXT:        Index: [[#IND+1]]
; SYMS64-NEXT:        SizeOfFunction: 0x18
; SYMS64-NEXT:        PointerToLineNum: 0x0
; SYMS64-NEXT:        SymbolIndexOfNextBeyond: [[#IND+3]]
; SYMS64-NEXT:        Auxiliary Type: AUX_FCN (0xFE)
; SYMS64-NEXT:      }
; SYMS64-NEXT:      CSECT Auxiliary Entry {
; SYMS64-NEXT:        Index: [[#IND+2]]
; SYMS64-NEXT:        ContainingCsectSymbolIndex: [[#IND-2]]
; SYMS64-NEXT:        ParameterHashIndex: 0x0
; SYMS64-NEXT:        TypeChkSectNum: 0x0
; SYMS64-NEXT:        SymbolAlignmentLog2: 0
; SYMS64-NEXT:        SymbolType: XTY_LD (0x2)
; SYMS64-NEXT:        StorageMappingClass: XMC_PR (0x0)
; SYMS64-NEXT:        Auxiliary Type: AUX_CSECT (0xFB)
; SYMS64-NEXT:      }
; SYMS64-NEXT:    }
; SYMS64-NEXT:    Symbol {
; SYMS64-NEXT:      Index: [[#IND+3]]
; SYMS64-NEXT:      Name: .test__trap_annotation
; SYMS64-NEXT:      Value (RelocatableAddress): 0x28
; SYMS64-NEXT:      Section: .text
; SYMS64-NEXT:      Type: 0x0
; SYMS64-NEXT:      StorageClass: C_EXT (0x2)
; SYMS64-NEXT:      NumberOfAuxEntries: 2
; SYMS64-NEXT:      Function Auxiliary Entry {
; SYMS64-NEXT:        Index: [[#IND+4]]
; SYMS64-NEXT:        SizeOfFunction: 0x68
; SYMS64-NEXT:        PointerToLineNum: 0x0
; SYMS64-NEXT:        SymbolIndexOfNextBeyond: [[#IND+6]]
; SYMS64-NEXT:        Auxiliary Type: AUX_FCN (0xFE)
; SYMS64-NEXT:      }
; SYMS64-NEXT:      CSECT Auxiliary Entry {
; SYMS64-NEXT:        Index: [[#IND+5]]
; SYMS64-NEXT:        ContainingCsectSymbolIndex: [[#IND-2]]
; SYMS64-NEXT:        ParameterHashIndex: 0x0
; SYMS64-NEXT:        TypeChkSectNum: 0x0
; SYMS64-NEXT:        SymbolAlignmentLog2: 0
; SYMS64-NEXT:        SymbolType: XTY_LD (0x2)
; SYMS64-NEXT:        StorageMappingClass: XMC_PR (0x0)
; SYMS64-NEXT:        Auxiliary Type: AUX_CSECT (0xFB)
; SYMS64-NEXT:      }
; SYMS64-NEXT:    }
