From: Martell Malone Date: Sat, 1 Oct 2016 23:10:20 +0000 (+0000) Subject: COFF: Fix short import lib import name type bitshift X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d17dee59d13513b38c5a6b48a533e59ec346b61b;p=llvm COFF: Fix short import lib import name type bitshift As per the PE COFF spec (section 8.3, Import Name Type) Offset: 18 Size 2 bits Name: Type Offset: 20 Size 3 bits Name: Name Type Offset: 20 added based on 18+2 Partially commited as rL279069 Differential Revision: https://reviews.llvm.org/D23540 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283055 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Support/COFF.h b/include/llvm/Support/COFF.h index 7dad3e82bda..1ca781b981e 100644 --- a/include/llvm/Support/COFF.h +++ b/include/llvm/Support/COFF.h @@ -657,7 +657,7 @@ namespace COFF { } ImportNameType getNameType() const { - return static_cast((TypeInfo & 0x1C) >> 3); + return static_cast((TypeInfo & 0x1C) >> 2); } }; diff --git a/test/tools/llvm-readobj/Inputs/library.lib b/test/tools/llvm-readobj/Inputs/library.lib index 193380dd485..7ad7c9052ea 100755 Binary files a/test/tools/llvm-readobj/Inputs/library.lib and b/test/tools/llvm-readobj/Inputs/library.lib differ diff --git a/test/tools/llvm-readobj/coff-exports-implib.test b/test/tools/llvm-readobj/coff-exports-implib.test index 9715109b3d5..2b327384b25 100644 --- a/test/tools/llvm-readobj/coff-exports-implib.test +++ b/test/tools/llvm-readobj/coff-exports-implib.test @@ -3,20 +3,24 @@ RUN: llvm-readobj -coff-exports %p/Inputs/library.lib | FileCheck %s CHECK: File: library.dll CHECK: Format: COFF-import-file CHECK: Type: const +CHECK: Name type: undecorate CHECK: Symbol: __imp__constant CHECK: File: library.dll CHECK: Format: COFF-import-file CHECK: Type: data +CHECK: Name type: noprefix CHECK: Symbol: __imp__data CHECK: File: library.dll CHECK: Format: COFF-import-file CHECK: Type: code +CHECK: Name type: name CHECK: Symbol: __imp__function CHECK: File: library.dll CHECK: Format: COFF-import-file CHECK: Type: code +CHECK: Name type: ordinal CHECK: Symbol: __imp__ordinal