mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-02 08:36:07 +00:00
95 lines
2.7 KiB
Plaintext
95 lines
2.7 KiB
Plaintext
![]() |
Test EXPORTAS in importlibs.
|
||
|
|
||
|
RUN: split-file %s %t.dir && cd %t.dir
|
||
|
RUN: llvm-lib -machine:amd64 -def:test.def -out:test.lib
|
||
|
|
||
|
RUN: llvm-nm --print-armap test.lib | FileCheck --check-prefix=ARMAP %s
|
||
|
|
||
|
ARMAP: Archive map
|
||
|
ARMAP-NEXT: __IMPORT_DESCRIPTOR_test in test.dll
|
||
|
ARMAP-NEXT: __NULL_IMPORT_DESCRIPTOR in test.dll
|
||
|
ARMAP-NEXT: __imp_func in test.dll
|
||
|
ARMAP-NEXT: __imp_func2 in test.dll
|
||
|
ARMAP-NEXT: __imp_func3 in test.dll
|
||
|
ARMAP-NEXT: __imp_mydata in test.dll
|
||
|
ARMAP-NEXT: func in test.dll
|
||
|
ARMAP-NEXT: func2 in test.dll
|
||
|
ARMAP-NEXT: func3 in test.dll
|
||
|
ARMAP-NEXT: test_NULL_THUNK_DATA in test.dll
|
||
|
|
||
|
RUN: llvm-readobj test.lib | FileCheck --check-prefix=READOBJ %s
|
||
|
|
||
|
READOBJ: File: test.lib(test.dll)
|
||
|
READOBJ-NEXT: Format: COFF-x86-64
|
||
|
READOBJ-NEXT: Arch: x86_64
|
||
|
READOBJ-NEXT: AddressSize: 64bit
|
||
|
READOBJ-EMPTY:
|
||
|
READOBJ-NEXT: File: test.lib(test.dll)
|
||
|
READOBJ-NEXT: Format: COFF-x86-64
|
||
|
READOBJ-NEXT: Arch: x86_64
|
||
|
READOBJ-NEXT: AddressSize: 64bit
|
||
|
READOBJ-EMPTY:
|
||
|
READOBJ-NEXT: File: test.lib(test.dll)
|
||
|
READOBJ-NEXT: Format: COFF-x86-64
|
||
|
READOBJ-NEXT: Arch: x86_64
|
||
|
READOBJ-NEXT: AddressSize: 64bit
|
||
|
READOBJ-EMPTY:
|
||
|
READOBJ-NEXT: File: test.dll
|
||
|
READOBJ-NEXT: Format: COFF-import-file-x86-64
|
||
|
READOBJ-NEXT: Type: code
|
||
|
READOBJ-NEXT: Name type: export as
|
||
|
READOBJ-NEXT: Export name: expfunc
|
||
|
READOBJ-NEXT: Symbol: __imp_func
|
||
|
READOBJ-NEXT: Symbol: func
|
||
|
READOBJ-EMPTY:
|
||
|
READOBJ-NEXT: File: test.dll
|
||
|
READOBJ-NEXT: Format: COFF-import-file-x86-64
|
||
|
READOBJ-NEXT: Type: data
|
||
|
READOBJ-NEXT: Name type: export as
|
||
|
READOBJ-NEXT: Export name: expdata
|
||
|
READOBJ-NEXT: Symbol: __imp_mydata
|
||
|
READOBJ-EMPTY:
|
||
|
READOBJ-NEXT: File: test.dll
|
||
|
READOBJ-NEXT: Format: COFF-import-file-x86-64
|
||
|
READOBJ-NEXT: Type: code
|
||
|
READOBJ-NEXT: Name type: export as
|
||
|
READOBJ-NEXT: Export name: expfunc2
|
||
|
READOBJ-NEXT: Symbol: __imp_func2
|
||
|
READOBJ-NEXT: Symbol: func2
|
||
|
READOBJ-EMPTY:
|
||
|
READOBJ-NEXT: File: test.dll
|
||
|
READOBJ-NEXT: Format: COFF-import-file-x86-64
|
||
|
READOBJ-NEXT: Type: code
|
||
|
READOBJ-NEXT: Name type: export as
|
||
|
READOBJ-NEXT: Export name: expfunc3
|
||
|
READOBJ-NEXT: Symbol: __imp_func3
|
||
|
READOBJ-NEXT: Symbol: func3
|
||
|
|
||
|
|
||
|
EXPORTAS must be at the end of entry declaration.
|
||
|
RUN: not llvm-lib -machine:amd64 -def:test2.def -out:test2.lib 2>&1 \
|
||
|
RUN: | FileCheck --check-prefix=ERROR %s
|
||
|
RUN: not llvm-lib -machine:amd64 -def:test3.def -out:test3.lib 2>&1 \
|
||
|
RUN: | FileCheck --check-prefix=ERROR %s
|
||
|
ERROR: Invalid data was encountered while parsing the file
|
||
|
|
||
|
|
||
|
#--- test.def
|
||
|
LIBRARY test.dll
|
||
|
EXPORTS
|
||
|
func EXPORTAS expfunc
|
||
|
mydata DATA EXPORTAS expdata
|
||
|
func2 = myfunc2 EXPORTAS expfunc2
|
||
|
func3 = otherdll.otherfunc3 EXPORTAS expfunc3
|
||
|
|
||
|
#--- test2.def
|
||
|
LIBRARY test.dll
|
||
|
EXPORTS
|
||
|
func EXPORTAS expfunc
|
||
|
mydata EXPORTAS expdata DATA
|
||
|
|
||
|
#--- test3.def
|
||
|
LIBRARY test.dll
|
||
|
EXPORTS
|
||
|
mydata EXPORTAS
|