From ce0fa7d2bae07f498e9785abc1b518e554031276 Mon Sep 17 00:00:00 2001 From: Konstantin Zhuravlyov Date: Thu, 2 Feb 2017 23:44:49 +0000 Subject: [PATCH] llvm-readobj: fix next note entry calculation and print unknown note types Differential Revision: https://reviews.llvm.org/D29131 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293964 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGen/AMDGPU/runtime-metadata.ll | 8 +++++++- tools/llvm-readobj/ELFDumper.cpp | 4 +++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/test/CodeGen/AMDGPU/runtime-metadata.ll b/test/CodeGen/AMDGPU/runtime-metadata.ll index abdbc325fd4..b8e943cd5a8 100644 --- a/test/CodeGen/AMDGPU/runtime-metadata.ll +++ b/test/CodeGen/AMDGPU/runtime-metadata.ll @@ -1,4 +1,4 @@ -; RUN: llc -mtriple=amdgcn--amdhsa -filetype=obj -o - < %s | llvm-readobj -amdgpu-runtime-metadata | FileCheck %s +; RUN: llc -mtriple=amdgcn--amdhsa -filetype=obj -o - < %s | llvm-readobj -amdgpu-runtime-metadata -elf-output-style=GNU -notes | FileCheck %s --check-prefix=NOTES ; RUN: llc -mtriple=amdgcn--amdhsa -filetype=obj -amdgpu-dump-rtmd -amdgpu-check-rtmd-parser %s -o - 2>&1 | FileCheck --check-prefix=CHECK --check-prefix=PARSER %s %struct.A = type { i8, float } @@ -341,6 +341,12 @@ define amdgpu_kernel void @test_pointee_align(i64 addrspace(1)* %a, i8 addrspace ; PARSER: AMDGPU runtime metadata parser test passes. +; NOTES: Displaying notes found at file offset 0x{{[0-9]+}} +; NOTES-NEXT: Owner Data size Description +; NOTES-NEXT: AMD 0x00000008 Unknown note type: (0x00000001) +; NOTES-NEXT: AMD 0x0000001b Unknown note type: (0x00000003) +; NOTES-NEXT: AMD 0x00005196 Unknown note type: (0x00000008) + !llvm.printf.fmts = !{!100, !101} !1 = !{i32 0} diff --git a/tools/llvm-readobj/ELFDumper.cpp b/tools/llvm-readobj/ELFDumper.cpp index eda3390b0f5..109dde142ef 100644 --- a/tools/llvm-readobj/ELFDumper.cpp +++ b/tools/llvm-readobj/ELFDumper.cpp @@ -3416,10 +3416,12 @@ void GNUStyle::printNotes(const ELFFile *Obj) { if (Name == "GNU") { OS << getGNUNoteTypeName(Type) << '\n'; printGNUNote(OS, Type, Descriptor); + } else { + OS << "Unknown note type: (" << format_hex(Type, 10) << ')'; } OS << '\n'; - P = P + 3 * sizeof(Elf_Word) * alignTo<4>(NameSize) + + P = P + 3 * sizeof(Elf_Word) + alignTo<4>(NameSize) + alignTo<4>(DescriptorSize); } }; -- 2.50.1