Index: llvm/trunk/lib/Object/COFFImportFile.cpp =================================================================== --- llvm/trunk/lib/Object/COFFImportFile.cpp +++ llvm/trunk/lib/Object/COFFImportFile.cpp @@ -595,7 +595,10 @@ ImportType = IMPORT_CONST; StringRef SymbolName = E.SymbolName.empty() ? E.Name : E.SymbolName; - ImportNameType NameType = getNameType(SymbolName, E.Name, Machine, MinGW); + ImportNameType NameType = E.Noname + ? IMPORT_ORDINAL + : getNameType(SymbolName, E.Name, + Machine, MinGW); Expected Name = E.ExtName.empty() ? SymbolName : replace(SymbolName, E.Name, E.ExtName); Index: llvm/trunk/test/tools/llvm-dlltool/coff-noname.def =================================================================== --- llvm/trunk/test/tools/llvm-dlltool/coff-noname.def +++ llvm/trunk/test/tools/llvm-dlltool/coff-noname.def @@ -0,0 +1,14 @@ +; RUN: llvm-dlltool -k -m i386 --input-def %s --output-lib %t.a +; RUN: llvm-readobj %t.a | FileCheck %s + +LIBRARY test.dll +EXPORTS +ByOrdinalFunction @ 1 NONAME +ByNameFunction + +; CHECK: Name type: ordinal +; CHECK: Symbol: __imp__ByOrdinalFunction +; CHECK: Symbol: _ByOrdinalFunction +; CHECK: Name type: noprefix +; CHECK: Symbol: __imp__ByNameFunction +; CHECK: Symbol: _ByNameFunction