diff options
author | Saleem Abdulrasool <compnerd@compnerd.org> | 2017-04-28 04:29:43 +0000 |
---|---|---|
committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2017-04-28 04:29:43 +0000 |
commit | 41d9ef3cedbe05b83e8c03c62aeaf01a1e52b134 (patch) | |
tree | a0b1aea748813cd0faa08837fcffba5d971e0dd6 /llvm | |
parent | 49e58e766b79a7a50446cef0e894a396491044f8 (diff) | |
download | bcm5719-llvm-41d9ef3cedbe05b83e8c03c62aeaf01a1e52b134.tar.gz bcm5719-llvm-41d9ef3cedbe05b83e8c03c62aeaf01a1e52b134.zip |
COFF Import: expose both symbols
COFF Import libraries which use the obsolete CONSTANT export are
supposed to get two symbols, one with the `_imp_` prefix and one
without. Ensure that we expose both for iteration. This is necessary
to fix the librarian with COFF CONSTANT exports.
llvm-svn: 301614
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/include/llvm/Object/COFFImportFile.h | 6 | ||||
-rw-r--r-- | llvm/test/tools/llvm-readobj/Inputs/const-import.lib | bin | 0 -> 1200 bytes | |||
-rw-r--r-- | llvm/test/tools/llvm-readobj/coff-const-import.test | 7 |
3 files changed, 10 insertions, 3 deletions
diff --git a/llvm/include/llvm/Object/COFFImportFile.h b/llvm/include/llvm/Object/COFFImportFile.h index 4192fe7e5c9..78d9d679acd 100644 --- a/llvm/include/llvm/Object/COFFImportFile.h +++ b/llvm/include/llvm/Object/COFFImportFile.h @@ -53,7 +53,7 @@ public: basic_symbol_iterator symbol_end() const override { DataRefImpl Symb; - Symb.p = isCode() ? 2 : 1; + Symb.p = isData() ? 1 : 2; return BasicSymbolRef(Symb, this); } @@ -63,8 +63,8 @@ public: } private: - bool isCode() const { - return getCOFFImportHeader()->getType() == COFF::IMPORT_CODE; + bool isData() const { + return getCOFFImportHeader()->getType() == COFF::IMPORT_DATA; } }; diff --git a/llvm/test/tools/llvm-readobj/Inputs/const-import.lib b/llvm/test/tools/llvm-readobj/Inputs/const-import.lib Binary files differnew file mode 100644 index 00000000000..88a2ac3f836 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/Inputs/const-import.lib diff --git a/llvm/test/tools/llvm-readobj/coff-const-import.test b/llvm/test/tools/llvm-readobj/coff-const-import.test new file mode 100644 index 00000000000..3c3c48242c6 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/coff-const-import.test @@ -0,0 +1,7 @@ +RUN: llvm-readobj -coff-exports %S/Inputs/const-import.lib | FileCheck %s + +CHECK: Type: const +CHECK: Name type: noprefix +CHECK: Symbol: __imp____CFConstantStringClassReference +CHECK: Symbol: ___CFConstantStringClassReference + |