xref: /aosp_15_r20/external/llvm/test/tools/llvm-readobj/elf-groups.test (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker# Source file compiled:
2*9880d681SAndroid Build Coastguard Worker##include <iostream>
3*9880d681SAndroid Build Coastguard Worker# #include <typeinfo>
4*9880d681SAndroid Build Coastguard Worker#template <class A>
5*9880d681SAndroid Build Coastguard Worker#void foo(A variable) {
6*9880d681SAndroid Build Coastguard Worker#  std::cout << "foo is " << typeid(A).name() << "\n";
7*9880d681SAndroid Build Coastguard Worker#}
8*9880d681SAndroid Build Coastguard Worker#int main () {
9*9880d681SAndroid Build Coastguard Worker#  char x = 'x';
10*9880d681SAndroid Build Coastguard Worker#  int y = 1;
11*9880d681SAndroid Build Coastguard Worker#  foo(x);
12*9880d681SAndroid Build Coastguard Worker#  foo(y);
13*9880d681SAndroid Build Coastguard Worker#  return 0;
14*9880d681SAndroid Build Coastguard Worker#}
15*9880d681SAndroid Build Coastguard Worker
16*9880d681SAndroid Build Coastguard WorkerRUN: llvm-readobj -g %p/Inputs/elf-groups.x86_64 \
17*9880d681SAndroid Build Coastguard WorkerRUN:   | FileCheck %s
18*9880d681SAndroid Build Coastguard WorkerRUN: llvm-readobj -g -elf-output-style=GNU %p/Inputs/elf-groups.x86_64 \
19*9880d681SAndroid Build Coastguard WorkerRUN:   | FileCheck --check-prefix="GNU" %s
20*9880d681SAndroid Build Coastguard WorkerCHECK:         Groups {
21*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT:      Group {
22*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT:        Name: .group (92)
23*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT:        Index: 1
24*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT:        Type: COMDAT (0x1)
25*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT:        Signature: _Z3fooIcEvT_
26*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT:        Section(s) in group [
27*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT:          .text._Z3fooIcEvT_ (10)
28*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT:          .rela.text._Z3fooIcEvT_ (11)
29*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT:        ]
30*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT:      }
31*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT:      Group {
32*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT:        Name: .group (92)
33*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT:        Index: 2
34*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT:        Type: COMDAT (0x1)
35*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT:        Signature: _Z3fooIiEvT_
36*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT:        Section(s) in group [
37*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT:          .text._Z3fooIiEvT_ (12)
38*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT:          .rela.text._Z3fooIiEvT_ (13)
39*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT:        ]
40*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT:      }
41*9880d681SAndroid Build Coastguard Worker
42*9880d681SAndroid Build Coastguard WorkerGNU:COMDAT group section [    1] `.group' [_Z3fooIcEvT_] contains 2 sections:
43*9880d681SAndroid Build Coastguard WorkerGNU-NEXT:   [Index]    Name
44*9880d681SAndroid Build Coastguard WorkerGNU-NEXT:   [   10]   .text._Z3fooIcEvT_
45*9880d681SAndroid Build Coastguard WorkerGNU-NEXT:   [   11]   .rela.text._Z3fooIcEvT_
46*9880d681SAndroid Build Coastguard WorkerGNU:COMDAT group section [    2] `.group' [_Z3fooIiEvT_] contains 2 sections:
47*9880d681SAndroid Build Coastguard WorkerGNU-NEXT:   [Index]    Name
48*9880d681SAndroid Build Coastguard WorkerGNU-NEXT:   [   12]   .text._Z3fooIiEvT_
49*9880d681SAndroid Build Coastguard WorkerGNU-NEXT:   [   13]   .rela.text._Z3fooIiEvT_
50*9880d681SAndroid Build Coastguard WorkerGNU:COMDAT group section [    3] `.group' [_ZNKSt9type_info4nameEv] contains 1 sections:
51*9880d681SAndroid Build Coastguard WorkerGNU-NEXT:   [Index]    Name
52*9880d681SAndroid Build Coastguard WorkerGNU-NEXT:   [   14]   .text._ZNKSt9type_info4nameEv
53