brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.7 KiB · fbcb62a Raw
201 lines · plain
1; Testing 32-bit and 64-bit exception section entries, no exception auxilliary2; entries should be produced as no debug information is specified.3; RUN: llc -mtriple=powerpc-ibm-aix-xcoff -mcpu=ppc -filetype=obj -o %t_32.o < %s4; RUN: llvm-readobj --exception-section %t_32.o | FileCheck %s --check-prefix=EXCEPT5; RUN: llvm-readobj --section-headers %t_32.o | FileCheck %s --check-prefix=READ6; RUN: llvm-readobj --syms %t_32.o | FileCheck %s --check-prefix=SYMS7 8; RUN: llc -mtriple=powerpc64-unknown-aix -mcpu=ppc -filetype=obj -o %t_64.o < %s9; RUN: llvm-readobj --exception-section %t_64.o | FileCheck %s --check-prefix=EXCEPT6410; RUN: llvm-readobj --section-headers %t_64.o | FileCheck %s --check-prefix=READ6411; RUN: llvm-readobj --syms %t_64.o | FileCheck %s --check-prefix=SYMS6412 13!1 = !{!"ppc-trap-reason", !"1", !"2"}14declare void @llvm.ppc.trap(i32 %a)15define dso_local void @sub_test() {16  call void @llvm.ppc.trap(i32 1), !annotation !117  ret void18}19define dso_local void @test__trap_annotation(i32 %a) {20  call void @llvm.ppc.trap(i32 %a), !annotation !121  call void @sub_test()22  call void @llvm.ppc.trap(i32 %a), !annotation !123  ret void24}25 26; EXCEPT:       Exception section {27; EXCEPT-NEXT:    Symbol: .sub_test28; EXCEPT-NEXT:    LangID: 029; EXCEPT-NEXT:    Reason: 030; EXCEPT-NEXT:    Trap Instr Addr: 0x431; EXCEPT-NEXT:    LangID: 132; EXCEPT-NEXT:    Reason: 233; EXCEPT-NEXT:    Symbol: .test__trap_annotation34; EXCEPT-NEXT:    LangID: 035; EXCEPT-NEXT:    Reason: 036; EXCEPT-NEXT:    Trap Instr Addr: 0x3C37; EXCEPT-NEXT:    LangID: 138; EXCEPT-NEXT:    Reason: 239; EXCEPT-NEXT:    Trap Instr Addr: 0x4440; EXCEPT-NEXT:    LangID: 141; EXCEPT-NEXT:    Reason: 242; EXCEPT-NEXT:  }43 44; There are multiple "Section {" lines in the readobj output so we need to start this READ check45; on a unique line (Type: STYP_DATA (0x40)) so that the checks know where to start reading46; READ:           Type: STYP_DATA (0x40)47; READ-NEXT:    }48; READ-NEXT:    Section {49; READ-NEXT:      Index: 350; READ-NEXT:      Name: .except51; READ-NEXT:      PhysicalAddress: 0x052; READ-NEXT:      VirtualAddress: 0x053; READ-NEXT:      Size: 0x1E54; READ-NEXT:      RawDataOffset: 0x12C55; READ-NEXT:      RelocationPointer: 0x056; READ-NEXT:      LineNumberPointer: 0x057; READ-NEXT:      NumberOfRelocations: 058; READ-NEXT:      NumberOfLineNumbers: 059; READ-NEXT:      Type: STYP_EXCEPT (0x100)60; READ-NEXT:    }61; READ-NEXT:  ]62 63; SYMS:           Index: [[#IND:]]{{.*}}{{[[:space:]] *}}Name: .sub_test64; SYMS-NEXT:      Value (RelocatableAddress): 0x065; SYMS-NEXT:      Section: .text66; SYMS-NEXT:      Type: 0x2067; SYMS-NEXT:      StorageClass: C_EXT (0x2)68; SYMS-NEXT:      NumberOfAuxEntries: 269; SYMS-NEXT:      Function Auxiliary Entry {70; SYMS-NEXT:        Index: [[#IND+1]]71; SYMS-NEXT:        OffsetToExceptionTable: 0x12C72; SYMS-NEXT:        SizeOfFunction: 0xC73; SYMS-NEXT:        PointerToLineNum: 0x074; SYMS-NEXT:        SymbolIndexOfNextBeyond: [[#IND+3]]75; SYMS-NEXT:      }76; SYMS-NEXT:      CSECT Auxiliary Entry {77; SYMS-NEXT:        Index: [[#IND+2]]78; SYMS-NEXT:        ContainingCsectSymbolIndex: [[#IND-2]]79; SYMS-NEXT:        ParameterHashIndex: 0x080; SYMS-NEXT:        TypeChkSectNum: 0x081; SYMS-NEXT:        SymbolAlignmentLog2: 082; SYMS-NEXT:        SymbolType: XTY_LD (0x2)83; SYMS-NEXT:        StorageMappingClass: XMC_PR (0x0)84; SYMS-NEXT:        StabInfoIndex: 0x085; SYMS-NEXT:        StabSectNum: 0x086; SYMS-NEXT:      }87; SYMS-NEXT:    }88; SYMS-NEXT:    Symbol {89; SYMS-NEXT:      Index: [[#IND+3]]90; SYMS-NEXT:      Name: .test__trap_annotation91; SYMS-NEXT:      Value (RelocatableAddress): 0x2892; SYMS-NEXT:      Section: .text93; SYMS-NEXT:      Type: 0x2094; SYMS-NEXT:      StorageClass: C_EXT (0x2)95; SYMS-NEXT:      NumberOfAuxEntries: 296; SYMS-NEXT:      Function Auxiliary Entry {97; SYMS-NEXT:        Index: [[#IND+4]]98; SYMS-NEXT:        OffsetToExceptionTable: 0x13899; SYMS-NEXT:        SizeOfFunction: 0x34100; SYMS-NEXT:        PointerToLineNum: 0x0101; SYMS-NEXT:        SymbolIndexOfNextBeyond: [[#IND+6]]102; SYMS-NEXT:      }103; SYMS-NEXT:      CSECT Auxiliary Entry {104; SYMS-NEXT:        Index: [[#IND+5]]105; SYMS-NEXT:        ContainingCsectSymbolIndex: [[#IND-2]]106; SYMS-NEXT:        ParameterHashIndex: 0x0107; SYMS-NEXT:        TypeChkSectNum: 0x0108; SYMS-NEXT:        SymbolAlignmentLog2: 0109; SYMS-NEXT:        SymbolType: XTY_LD (0x2)110; SYMS-NEXT:        StorageMappingClass: XMC_PR (0x0)111; SYMS-NEXT:        StabInfoIndex: 0x0112; SYMS-NEXT:        StabSectNum: 0x0113; SYMS-NEXT:      }114; SYMS-NEXT:    }115 116; EXCEPT64:       Exception section {117; EXCEPT64-NEXT:    Symbol: .sub_test118; EXCEPT64-NEXT:    LangID: 0119; EXCEPT64-NEXT:    Reason: 0120; EXCEPT64-NEXT:    Trap Instr Addr: 0x4121; EXCEPT64-NEXT:    LangID: 1122; EXCEPT64-NEXT:    Reason: 2123; EXCEPT64-NEXT:    Symbol: .test__trap_annotation124; EXCEPT64-NEXT:    LangID: 0125; EXCEPT64-NEXT:    Reason: 0126; EXCEPT64-NEXT:    Trap Instr Addr: 0x3C127; EXCEPT64-NEXT:    LangID: 1128; EXCEPT64-NEXT:    Reason: 2129; EXCEPT64-NEXT:    Trap Instr Addr: 0x44130; EXCEPT64-NEXT:    LangID: 1131; EXCEPT64-NEXT:    Reason: 2132; EXCEPT64-NEXT:  }133 134; READ64:           Type: STYP_DATA (0x40)135; READ64-NEXT:    }136; READ64-NEXT:    Section {137; READ64-NEXT:      Index: 3138; READ64-NEXT:      Name: .except139; READ64-NEXT:      PhysicalAddress: 0x0140; READ64-NEXT:      VirtualAddress: 0x0141; READ64-NEXT:      Size: 0x32142; READ64-NEXT:      RawDataOffset: 0x1A8143; READ64-NEXT:      RelocationPointer: 0x0144; READ64-NEXT:      LineNumberPointer: 0x0145; READ64-NEXT:      NumberOfRelocations: 0146; READ64-NEXT:      NumberOfLineNumbers: 0147; READ64-NEXT:      Type: STYP_EXCEPT (0x100)148; READ64-NEXT:    }149; READ64-NEXT:  ]150 151; SYMS64:           Index: [[#IND:]]{{.*}}{{[[:space:]] *}}Name: .sub_test152; SYMS64-NEXT:      Value (RelocatableAddress): 0x0153; SYMS64-NEXT:      Section: .text154; SYMS64-NEXT:      Type: 0x0155; SYMS64-NEXT:      StorageClass: C_EXT (0x2)156; SYMS64-NEXT:      NumberOfAuxEntries: 2157; SYMS64-NEXT:      Function Auxiliary Entry {158; SYMS64-NEXT:        Index: [[#IND+1]]159; SYMS64-NEXT:        SizeOfFunction: 0x18160; SYMS64-NEXT:        PointerToLineNum: 0x0161; SYMS64-NEXT:        SymbolIndexOfNextBeyond: [[#IND+3]]162; SYMS64-NEXT:        Auxiliary Type: AUX_FCN (0xFE)163; SYMS64-NEXT:      }164; SYMS64-NEXT:      CSECT Auxiliary Entry {165; SYMS64-NEXT:        Index: [[#IND+2]]166; SYMS64-NEXT:        ContainingCsectSymbolIndex: [[#IND-2]]167; SYMS64-NEXT:        ParameterHashIndex: 0x0168; SYMS64-NEXT:        TypeChkSectNum: 0x0169; SYMS64-NEXT:        SymbolAlignmentLog2: 0170; SYMS64-NEXT:        SymbolType: XTY_LD (0x2)171; SYMS64-NEXT:        StorageMappingClass: XMC_PR (0x0)172; SYMS64-NEXT:        Auxiliary Type: AUX_CSECT (0xFB)173; SYMS64-NEXT:      }174; SYMS64-NEXT:    }175; SYMS64-NEXT:    Symbol {176; SYMS64-NEXT:      Index: [[#IND+3]]177; SYMS64-NEXT:      Name: .test__trap_annotation178; SYMS64-NEXT:      Value (RelocatableAddress): 0x28179; SYMS64-NEXT:      Section: .text180; SYMS64-NEXT:      Type: 0x0181; SYMS64-NEXT:      StorageClass: C_EXT (0x2)182; SYMS64-NEXT:      NumberOfAuxEntries: 2183; SYMS64-NEXT:      Function Auxiliary Entry {184; SYMS64-NEXT:        Index: [[#IND+4]]185; SYMS64-NEXT:        SizeOfFunction: 0x68186; SYMS64-NEXT:        PointerToLineNum: 0x0187; SYMS64-NEXT:        SymbolIndexOfNextBeyond: [[#IND+6]]188; SYMS64-NEXT:        Auxiliary Type: AUX_FCN (0xFE)189; SYMS64-NEXT:      }190; SYMS64-NEXT:      CSECT Auxiliary Entry {191; SYMS64-NEXT:        Index: [[#IND+5]]192; SYMS64-NEXT:        ContainingCsectSymbolIndex: [[#IND-2]]193; SYMS64-NEXT:        ParameterHashIndex: 0x0194; SYMS64-NEXT:        TypeChkSectNum: 0x0195; SYMS64-NEXT:        SymbolAlignmentLog2: 0196; SYMS64-NEXT:        SymbolType: XTY_LD (0x2)197; SYMS64-NEXT:        StorageMappingClass: XMC_PR (0x0)198; SYMS64-NEXT:        Auxiliary Type: AUX_CSECT (0xFB)199; SYMS64-NEXT:      }200; SYMS64-NEXT:    }201