# Source file compiled:
##include <iostream>
# #include <typeinfo>
#template <class A>
#void foo(A variable) {
#  std::cout << "foo is " << typeid(A).name() << "\n";
#}
#int main () {
#  char x = 'x';
#  int y = 1;
#  foo(x);
#  foo(y);
#  return 0;
#}

RUN: llvm-readobj -g %p/Inputs/elf-groups.x86_64 \
RUN:   | FileCheck %s
RUN: llvm-readobj -g -elf-output-style=GNU %p/Inputs/elf-groups.x86_64 \
RUN:   | FileCheck --check-prefix="GNU" %s
CHECK:         Groups {
CHECK-NEXT:      Group {
CHECK-NEXT:        Name: .group (92)
CHECK-NEXT:        Index: 1
CHECK-NEXT:        Link: 23
CHECK-NEXT:        Info: 17
CHECK-NEXT:        Type: COMDAT (0x1)
CHECK-NEXT:        Signature: _Z3fooIcEvT_
CHECK-NEXT:        Section(s) in group [
CHECK-NEXT:          .text._Z3fooIcEvT_ (10)
CHECK-NEXT:          .rela.text._Z3fooIcEvT_ (11)
CHECK-NEXT:        ]
CHECK-NEXT:      }
CHECK-NEXT:      Group {
CHECK-NEXT:        Name: .group (92)
CHECK-NEXT:        Index: 2
CHECK-NEXT:        Link: 23
CHECK-NEXT:        Info: 18
CHECK-NEXT:        Type: COMDAT (0x1)
CHECK-NEXT:        Signature: _Z3fooIiEvT_
CHECK-NEXT:        Section(s) in group [
CHECK-NEXT:          .text._Z3fooIiEvT_ (12)
CHECK-NEXT:          .rela.text._Z3fooIiEvT_ (13)
CHECK-NEXT:        ]
CHECK-NEXT:      }

GNU:COMDAT group section [    1] `.group' [_Z3fooIcEvT_] contains 2 sections:
GNU-NEXT:   [Index]    Name
GNU-NEXT:   [   10]   .text._Z3fooIcEvT_
GNU-NEXT:   [   11]   .rela.text._Z3fooIcEvT_
GNU:COMDAT group section [    2] `.group' [_Z3fooIiEvT_] contains 2 sections:
GNU-NEXT:   [Index]    Name
GNU-NEXT:   [   12]   .text._Z3fooIiEvT_
GNU-NEXT:   [   13]   .rela.text._Z3fooIiEvT_
GNU:COMDAT group section [    3] `.group' [_ZNKSt9type_info4nameEv] contains 1 sections:
GNU-NEXT:   [Index]    Name
GNU-NEXT:   [   14]   .text._ZNKSt9type_info4nameEv
