forked from OSchip/llvm-project
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. llvm-svn: 246532
This commit is contained in:
parent
1ded69870e
commit
b355fd0308
|
@ -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();
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue