[llvm-readobj] Add -elf-section-groups option
Adds a way to inspect SHT_GROUP sections in ELF objects.
Displays signature, member sections of these sections.
Differential revision: http://reviews.llvm.org/D16555
llvm-svn: 258845
diff --git a/llvm/test/tools/llvm-readobj/elf-groups.test b/llvm/test/tools/llvm-readobj/elf-groups.test
new file mode 100644
index 0000000..e41b9dd
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/elf-groups.test
@@ -0,0 +1,39 @@
+# 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
+CHECK: Groups {
+CHECK-NEXT: Group {
+CHECK-NEXT: Name: .group (92)
+CHECK-NEXT: Index: 1
+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: 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: }
+