[lld] r197803 - [PECOFF] Create noname or data symbols as such.

Rui Ueyama ruiu at google.com
Fri Dec 20 03:50:19 PST 2013


Author: ruiu
Date: Fri Dec 20 05:50:19 2013
New Revision: 197803

URL: http://llvm.org/viewvc/llvm-project?rev=197803&view=rev
Log:
[PECOFF] Create noname or data symbols as such.

If a symbol in an import library is marked as "data", the linker will not
create a jump table entry for the symbol, since jump table makes sense only
for a symbol pointing to a function.

I don't think NONAME attribute has a meaning when creating an import library.
The attribute is emitted for debugging purpose.

Modified:
    lld/trunk/lib/ReaderWriter/PECOFF/WriterImportLibrary.cpp

Modified: lld/trunk/lib/ReaderWriter/PECOFF/WriterImportLibrary.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/PECOFF/WriterImportLibrary.cpp?rev=197803&r1=197802&r2=197803&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/PECOFF/WriterImportLibrary.cpp (original)
+++ lld/trunk/lib/ReaderWriter/PECOFF/WriterImportLibrary.cpp Fri Dec 20 05:50:19 2013
@@ -41,8 +41,14 @@ createModuleDefinitionFile(const PECOFFL
   os << "LIBRARY \"" << llvm::sys::path::filename(ctx.outputPath()) << "\"\n"
      << "EXPORTS\n";
 
-  for (const PECOFFLinkingContext::ExportDesc &desc : ctx.getDllExports())
-    os << "  " << desc.name << " @" << desc.ordinal << "\n";
+  for (const PECOFFLinkingContext::ExportDesc &desc : ctx.getDllExports()) {
+    os << "  " << desc.name << " @" << desc.ordinal;
+    if (desc.noname)
+      os << " NONAME";
+    if (desc.isData)
+      os << " DATA";
+    os << "\n";
+  }
   return defFile.str();
 }
 





More information about the llvm-commits mailing list