blob: cf2779765b55ced652cd5891151b6303ee4d56de [file] [log] [blame]
Hemant Kulkarniab4a46f2016-01-26 19:46:39 +00001# Source file compiled:
2##include <iostream>
3# #include <typeinfo>
4#template <class A>
5#void foo(A variable) {
6# std::cout << "foo is " << typeid(A).name() << "\n";
7#}
8#int main () {
9# char x = 'x';
10# int y = 1;
11# foo(x);
12# foo(y);
13# return 0;
14#}
15
16RUN: llvm-readobj -g %p/Inputs/elf-groups.x86_64 \
17RUN: | FileCheck %s
Hemant Kulkarni206ba842016-03-09 19:16:13 +000018RUN: llvm-readobj -g -elf-output-style=GNU %p/Inputs/elf-groups.x86_64 \
19RUN: | FileCheck --check-prefix="GNU" %s
Hemant Kulkarniab4a46f2016-01-26 19:46:39 +000020CHECK: Groups {
21CHECK-NEXT: Group {
22CHECK-NEXT: Name: .group (92)
23CHECK-NEXT: Index: 1
24CHECK-NEXT: Type: COMDAT (0x1)
25CHECK-NEXT: Signature: _Z3fooIcEvT_
26CHECK-NEXT: Section(s) in group [
27CHECK-NEXT: .text._Z3fooIcEvT_ (10)
28CHECK-NEXT: .rela.text._Z3fooIcEvT_ (11)
29CHECK-NEXT: ]
30CHECK-NEXT: }
31CHECK-NEXT: Group {
32CHECK-NEXT: Name: .group (92)
33CHECK-NEXT: Index: 2
34CHECK-NEXT: Type: COMDAT (0x1)
35CHECK-NEXT: Signature: _Z3fooIiEvT_
36CHECK-NEXT: Section(s) in group [
37CHECK-NEXT: .text._Z3fooIiEvT_ (12)
38CHECK-NEXT: .rela.text._Z3fooIiEvT_ (13)
39CHECK-NEXT: ]
40CHECK-NEXT: }
41
Hemant Kulkarni206ba842016-03-09 19:16:13 +000042GNU:COMDAT group section [ 1] `.group' [_Z3fooIcEvT_] contains 2 sections:
43GNU-NEXT: [Index] Name
44GNU-NEXT: [ 10] .text._Z3fooIcEvT_
45GNU-NEXT: [ 11] .rela.text._Z3fooIcEvT_
46GNU:COMDAT group section [ 2] `.group' [_Z3fooIiEvT_] contains 2 sections:
47GNU-NEXT: [Index] Name
48GNU-NEXT: [ 12] .text._Z3fooIiEvT_
49GNU-NEXT: [ 13] .rela.text._Z3fooIiEvT_
50GNU:COMDAT group section [ 3] `.group' [_ZNKSt9type_info4nameEv] contains 1 sections:
51GNU-NEXT: [Index] Name
52GNU-NEXT: [ 14] .text._ZNKSt9type_info4nameEv