[llvm] r301614 - COFF Import: expose both symbols

Saleem Abdulrasool via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 27 21:29:43 PDT 2017


Author: compnerd
Date: Thu Apr 27 23:29:43 2017
New Revision: 301614

URL: http://llvm.org/viewvc/llvm-project?rev=301614&view=rev
Log:
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.

Added:
    llvm/trunk/test/tools/llvm-readobj/Inputs/const-import.lib
    llvm/trunk/test/tools/llvm-readobj/coff-const-import.test
Modified:
    llvm/trunk/include/llvm/Object/COFFImportFile.h

Modified: llvm/trunk/include/llvm/Object/COFFImportFile.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Object/COFFImportFile.h?rev=301614&r1=301613&r2=301614&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Object/COFFImportFile.h (original)
+++ llvm/trunk/include/llvm/Object/COFFImportFile.h Thu Apr 27 23:29:43 2017
@@ -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;
   }
 };
 

Added: llvm/trunk/test/tools/llvm-readobj/Inputs/const-import.lib
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-readobj/Inputs/const-import.lib?rev=301614&view=auto
==============================================================================
Binary files llvm/trunk/test/tools/llvm-readobj/Inputs/const-import.lib (added) and llvm/trunk/test/tools/llvm-readobj/Inputs/const-import.lib Thu Apr 27 23:29:43 2017 differ

Added: llvm/trunk/test/tools/llvm-readobj/coff-const-import.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-readobj/coff-const-import.test?rev=301614&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-readobj/coff-const-import.test (added)
+++ llvm/trunk/test/tools/llvm-readobj/coff-const-import.test Thu Apr 27 23:29:43 2017
@@ -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
+




More information about the llvm-commits mailing list