summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-readobj
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2017-10-23 23:43:40 +0000
committerReid Kleckner <rnk@google.com>2017-10-23 23:43:40 +0000
commit0e88118dd7e741fcbf25d63297f12dc8a1882558 (patch)
tree4ad38eb893fdc685be580b2308c53e47838a9529 /llvm/test/tools/llvm-readobj
parent7fb124131cfe1d4c444539a799c2b84479b5dc8d (diff)
downloadbcm5719-llvm-0e88118dd7e741fcbf25d63297f12dc8a1882558.tar.gz
bcm5719-llvm-0e88118dd7e741fcbf25d63297f12dc8a1882558.zip
[codeview] Add support for inlinee lists
This adds type index discovery and dumper support for symbol record kind 0x1168, which is a list of inlined function ids. This symbol kind is undocumented, but S_INLINEES is consistent with the existing nomenclature. Fixes PR34222 llvm-svn: 316398
Diffstat (limited to 'llvm/test/tools/llvm-readobj')
-rw-r--r--llvm/test/tools/llvm-readobj/Inputs/codeview-inlinees.objbin0 -> 2793 bytes
-rw-r--r--llvm/test/tools/llvm-readobj/codeview-inlinees.test38
2 files changed, 38 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-readobj/Inputs/codeview-inlinees.obj b/llvm/test/tools/llvm-readobj/Inputs/codeview-inlinees.obj
new file mode 100644
index 00000000000..297fdcad0e1
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/Inputs/codeview-inlinees.obj
Binary files differ
diff --git a/llvm/test/tools/llvm-readobj/codeview-inlinees.test b/llvm/test/tools/llvm-readobj/codeview-inlinees.test
new file mode 100644
index 00000000000..bbbe8b45de7
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/codeview-inlinees.test
@@ -0,0 +1,38 @@
+Compile the following like so to reproduce the input:
+$ cl -c -O2 t.c -Z7
+void g();
+static inline void f() { g(); }
+static inline void h() { g(); }
+void k() {
+ f();
+ h();
+}
+
+RUN: llvm-readobj -codeview %p/Inputs/codeview-inlinees.obj | FileCheck %s
+
+CHECK: SubSectionType: InlineeLines (0xF6)
+CHECK: Inlinee: f (0x1003)
+CHECK: Inlinee: h (0x1004)
+CHECK-NOT: Inlinee:
+
+CHECK: GlobalProcIdSym {
+CHECK: Kind: S_GPROC32_ID (0x1147)
+CHECK: DisplayName: k
+CHECK: LinkageName: k
+CHECK: }
+CHECK: InlineSiteSym
+CHECK: Kind: S_INLINESITE (0x114D)
+CHECK: Inlinee: h (0x1004)
+CHECK: InlineSiteSym
+CHECK: Kind: S_INLINESITE (0x114D)
+CHECK: Inlinee: f (0x1003)
+CHECK: InlineesSym {
+CHECK-NEXT: Kind: S_INLINEES (0x1168)
+CHECK-NEXT: Callers [
+CHECK-NEXT: FuncID: f (0x1003)
+CHECK-NEXT: FuncID: h (0x1004)
+CHECK-NEXT: ]
+CHECK: }
+CHECK: ProcEnd {
+CHECK: Kind: S_PROC_ID_END (0x114F)
+CHECK: }
OpenPOWER on IntegriCloud