diff options
author | Reid Kleckner <rnk@google.com> | 2017-10-23 23:43:40 +0000 |
---|---|---|
committer | Reid Kleckner <rnk@google.com> | 2017-10-23 23:43:40 +0000 |
commit | 0e88118dd7e741fcbf25d63297f12dc8a1882558 (patch) | |
tree | 4ad38eb893fdc685be580b2308c53e47838a9529 /llvm/test/tools/llvm-readobj | |
parent | 7fb124131cfe1d4c444539a799c2b84479b5dc8d (diff) | |
download | bcm5719-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.obj | bin | 0 -> 2793 bytes | |||
-rw-r--r-- | llvm/test/tools/llvm-readobj/codeview-inlinees.test | 38 |
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 Binary files differnew file mode 100644 index 00000000000..297fdcad0e1 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/Inputs/codeview-inlinees.obj 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: } |