From 5c1fa7fc49b4315985256e3c1d37371435376837 Mon Sep 17 00:00:00 2001 From: Rui Ueyama Date: Tue, 1 Sep 2015 06:01:53 +0000 Subject: [PATCH] Object: Fix COFF import file's symbols. If a symbol is marked as "data", the symbol should be exported with __imp_ prefix. Previously, the symbol was exported as-is. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@246532 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Object/COFFImportFile.h | 2 +- test/Object/archive-symtab.test | 6 +++--- test/tools/llvm-readobj/file-headers.test | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/llvm/Object/COFFImportFile.h b/include/llvm/Object/COFFImportFile.h index 07e98f5cf12..b04a44ea60d 100644 --- a/include/llvm/Object/COFFImportFile.h +++ b/include/llvm/Object/COFFImportFile.h @@ -37,7 +37,7 @@ public: std::error_code printSymbolName(raw_ostream &OS, DataRefImpl Symb) const override { - if (Symb.p == 1) + if (Symb.p == 0) OS << "__imp_"; OS << StringRef(Data.getBufferStart() + sizeof(coff_import_header)); return std::error_code(); diff --git a/test/Object/archive-symtab.test b/test/Object/archive-symtab.test index 120401bad36..c9e89005d6c 100644 --- a/test/Object/archive-symtab.test +++ b/test/Object/archive-symtab.test @@ -104,10 +104,10 @@ RUN: llvm-ar --format=gnu rcsU %t.a %p/Inputs/coff-short-import-code %p/Inputs/c RUN: llvm-nm -M %t.a | FileCheck --check-prefix=COFF-SHORT-IMPORT %s COFF-SHORT-IMPORT: Archive map -COFF-SHORT-IMPORT-NEXT: _foo in coff-short-import-code COFF-SHORT-IMPORT-NEXT: __imp__foo in coff-short-import-code -COFF-SHORT-IMPORT-NEXT: _bar in coff-short-import-data -COFF-SHORT-IMPORT-NOT: __imp__bar in coff-short-import-data +COFF-SHORT-IMPORT-NEXT: _foo in coff-short-import-code +COFF-SHORT-IMPORT-NEXT: __imp__bar in coff-short-import-data +COFF-SHORT-IMPORT-NOT: _bar in coff-short-import-data Test that we pad the symbol table so that it ends in a multiple of 4 bytes: 8 + 60 + 36 == 104 diff --git a/test/tools/llvm-readobj/file-headers.test b/test/tools/llvm-readobj/file-headers.test index 10fbcbcc153..2d67089d611 100644 --- a/test/tools/llvm-readobj/file-headers.test +++ b/test/tools/llvm-readobj/file-headers.test @@ -333,5 +333,5 @@ COFF-UNKNOWN-NEXT: } COFF-IMPORTLIB: Format: COFF-import-file COFF-IMPORTLIB-NEXT: Type: code COFF-IMPORTLIB-NEXT: Name type: noprefix -COFF-IMPORTLIB-NEXT: Symbol: _func COFF-IMPORTLIB-NEXT: Symbol: __imp__func +COFF-IMPORTLIB-NEXT: Symbol: _func -- 2.34.1