llvm/llvm/test/tools/llvm-dlltool/coff-decorated.def

; RUN: llvm-dlltool -k -m i386 --input-def %s --output-lib %t.a
; RUN: llvm-readobj %t.a | FileCheck %s
; RUN: llvm-nm %t.a | FileCheck %s -check-prefix=CHECK-NM

LIBRARY test.dll
EXPORTS
CdeclFunction
StdcallFunction@4
@FastcallFunction@4
StdcallAlias@4==StdcallFunction
??_7exception@@6B@
StdcallExportName@4=StdcallInternalFunction@4
OtherStdcallExportName@4=CdeclInternalFunction
CdeclExportName=StdcallInternalFunction@4

NoprefixStdcall@4 == NoprefixStdcall@4
DecoratedStdcall@4 == _DecoratedStdcall@4
UndecoratedStdcall@4 == UndecoratedStdcall

; CHECK:      Name type: noprefix
; CHECK-NEXT: Export name: CdeclFunction
; CHECK-NEXT: Symbol: __imp__CdeclFunction
; CHECK-NEXT: Symbol: _CdeclFunction
; CHECK:      Name type: undecorate
; CHECK-NEXT: Export name: StdcallFunction
; CHECK-NEXT: Symbol: __imp__StdcallFunction@4
; CHECK-NEXT: Symbol: _StdcallFunction@4
; CHECK:      Name type: undecorate
; CHECK-NEXT: Export name: FastcallFunction
; CHECK-NEXT: Symbol: __imp_@FastcallFunction@4
; CHECK-NEXT: Symbol: @FastcallFunction@4
; CHECK:      Name type: name
; CHECK-NEXT: Export name: ??_7exception@@6B@
; CHECK-NEXT: Symbol: __imp_??_7exception@@6B@
; CHECK-NEXT: Symbol: ??_7exception@@6B@
; CHECK-NM: W _StdcallAlias@4
; CHECK-NM: U _StdcallFunction@4
; CHECK:      Name type: undecorate
; CHECK-NEXT: Export name: StdcallExportName
; CHECK-NEXT: Symbol: __imp__StdcallExportName@4{{$}}
; CHECK-NEXT: Symbol: _StdcallExportName@4{{$}}
; CHECK:      Name type: undecorate
; CHECK-NEXT: Export name: OtherStdcallExportName
; CHECK-NEXT: Symbol: __imp__OtherStdcallExportName@4{{$}}
; CHECK-NEXT: Symbol: _OtherStdcallExportName@4{{$}}
; CHECK:      Name type: noprefix
; CHECK-NEXT: Export name: CdeclExportName
; CHECK-NEXT: Symbol: __imp__CdeclExportName
; CHECK-NEXT: Symbol: _CdeclExportName
; CHECK:      Name type: noprefix
; CHECK-NEXT: Export name: NoprefixStdcall@4
; CHECK-NEXT: Symbol: __imp__NoprefixStdcall@4
; CHECK-NEXT: Symbol: _NoprefixStdcall@4
; CHECK:      Name type: name
; CHECK-NEXT: Export name: _DecoratedStdcall@4
; CHECK-NEXT: Symbol: __imp__DecoratedStdcall@4
; CHECK-NEXT: Symbol: _DecoratedStdcall@4
; CHECK:      Name type: undecorate
; CHECK-NEXT: Export name: UndecoratedStdcall
; CHECK-NEXT: Symbol: __imp__UndecoratedStdcall@4
; CHECK-NEXT: Symbol: _UndecoratedStdcall@4