1*8f23464aSJacek CabanTest EXPORTAS in importlibs. 2*8f23464aSJacek Caban 3*8f23464aSJacek CabanRUN: split-file %s %t.dir && cd %t.dir 4*8f23464aSJacek CabanRUN: llvm-lib -machine:amd64 -def:test.def -out:test.lib 5*8f23464aSJacek Caban 6*8f23464aSJacek CabanRUN: llvm-nm --print-armap test.lib | FileCheck --check-prefix=ARMAP %s 7*8f23464aSJacek Caban 8*8f23464aSJacek CabanARMAP: Archive map 9*8f23464aSJacek CabanARMAP-NEXT: __IMPORT_DESCRIPTOR_test in test.dll 10*8f23464aSJacek CabanARMAP-NEXT: __NULL_IMPORT_DESCRIPTOR in test.dll 11*8f23464aSJacek CabanARMAP-NEXT: __imp_func in test.dll 12*8f23464aSJacek CabanARMAP-NEXT: __imp_func2 in test.dll 13*8f23464aSJacek CabanARMAP-NEXT: __imp_func3 in test.dll 14*8f23464aSJacek CabanARMAP-NEXT: __imp_mydata in test.dll 15*8f23464aSJacek CabanARMAP-NEXT: func in test.dll 16*8f23464aSJacek CabanARMAP-NEXT: func2 in test.dll 17*8f23464aSJacek CabanARMAP-NEXT: func3 in test.dll 18*8f23464aSJacek CabanARMAP-NEXT: test_NULL_THUNK_DATA in test.dll 19*8f23464aSJacek Caban 20*8f23464aSJacek CabanRUN: llvm-readobj test.lib | FileCheck --check-prefix=READOBJ %s 21*8f23464aSJacek Caban 22*8f23464aSJacek CabanREADOBJ: File: test.lib(test.dll) 23*8f23464aSJacek CabanREADOBJ-NEXT: Format: COFF-x86-64 24*8f23464aSJacek CabanREADOBJ-NEXT: Arch: x86_64 25*8f23464aSJacek CabanREADOBJ-NEXT: AddressSize: 64bit 26*8f23464aSJacek CabanREADOBJ-EMPTY: 27*8f23464aSJacek CabanREADOBJ-NEXT: File: test.lib(test.dll) 28*8f23464aSJacek CabanREADOBJ-NEXT: Format: COFF-x86-64 29*8f23464aSJacek CabanREADOBJ-NEXT: Arch: x86_64 30*8f23464aSJacek CabanREADOBJ-NEXT: AddressSize: 64bit 31*8f23464aSJacek CabanREADOBJ-EMPTY: 32*8f23464aSJacek CabanREADOBJ-NEXT: File: test.lib(test.dll) 33*8f23464aSJacek CabanREADOBJ-NEXT: Format: COFF-x86-64 34*8f23464aSJacek CabanREADOBJ-NEXT: Arch: x86_64 35*8f23464aSJacek CabanREADOBJ-NEXT: AddressSize: 64bit 36*8f23464aSJacek CabanREADOBJ-EMPTY: 37*8f23464aSJacek CabanREADOBJ-NEXT: File: test.dll 38*8f23464aSJacek CabanREADOBJ-NEXT: Format: COFF-import-file-x86-64 39*8f23464aSJacek CabanREADOBJ-NEXT: Type: code 40*8f23464aSJacek CabanREADOBJ-NEXT: Name type: export as 41*8f23464aSJacek CabanREADOBJ-NEXT: Export name: expfunc 42*8f23464aSJacek CabanREADOBJ-NEXT: Symbol: __imp_func 43*8f23464aSJacek CabanREADOBJ-NEXT: Symbol: func 44*8f23464aSJacek CabanREADOBJ-EMPTY: 45*8f23464aSJacek CabanREADOBJ-NEXT: File: test.dll 46*8f23464aSJacek CabanREADOBJ-NEXT: Format: COFF-import-file-x86-64 47*8f23464aSJacek CabanREADOBJ-NEXT: Type: data 48*8f23464aSJacek CabanREADOBJ-NEXT: Name type: export as 49*8f23464aSJacek CabanREADOBJ-NEXT: Export name: expdata 50*8f23464aSJacek CabanREADOBJ-NEXT: Symbol: __imp_mydata 51*8f23464aSJacek CabanREADOBJ-EMPTY: 52*8f23464aSJacek CabanREADOBJ-NEXT: File: test.dll 53*8f23464aSJacek CabanREADOBJ-NEXT: Format: COFF-import-file-x86-64 54*8f23464aSJacek CabanREADOBJ-NEXT: Type: code 55*8f23464aSJacek CabanREADOBJ-NEXT: Name type: export as 56*8f23464aSJacek CabanREADOBJ-NEXT: Export name: expfunc2 57*8f23464aSJacek CabanREADOBJ-NEXT: Symbol: __imp_func2 58*8f23464aSJacek CabanREADOBJ-NEXT: Symbol: func2 59*8f23464aSJacek CabanREADOBJ-EMPTY: 60*8f23464aSJacek CabanREADOBJ-NEXT: File: test.dll 61*8f23464aSJacek CabanREADOBJ-NEXT: Format: COFF-import-file-x86-64 62*8f23464aSJacek CabanREADOBJ-NEXT: Type: code 63*8f23464aSJacek CabanREADOBJ-NEXT: Name type: export as 64*8f23464aSJacek CabanREADOBJ-NEXT: Export name: expfunc3 65*8f23464aSJacek CabanREADOBJ-NEXT: Symbol: __imp_func3 66*8f23464aSJacek CabanREADOBJ-NEXT: Symbol: func3 67*8f23464aSJacek Caban 68*8f23464aSJacek Caban 69*8f23464aSJacek CabanEXPORTAS must be at the end of entry declaration. 70*8f23464aSJacek CabanRUN: not llvm-lib -machine:amd64 -def:test2.def -out:test2.lib 2>&1 \ 71*8f23464aSJacek CabanRUN: | FileCheck --check-prefix=ERROR %s 72*8f23464aSJacek CabanRUN: not llvm-lib -machine:amd64 -def:test3.def -out:test3.lib 2>&1 \ 73*8f23464aSJacek CabanRUN: | FileCheck --check-prefix=ERROR %s 74*8f23464aSJacek CabanERROR: Invalid data was encountered while parsing the file 75*8f23464aSJacek Caban 76*8f23464aSJacek Caban 77*8f23464aSJacek Caban#--- test.def 78*8f23464aSJacek CabanLIBRARY test.dll 79*8f23464aSJacek CabanEXPORTS 80*8f23464aSJacek Caban func EXPORTAS expfunc 81*8f23464aSJacek Caban mydata DATA EXPORTAS expdata 82*8f23464aSJacek Caban func2 = myfunc2 EXPORTAS expfunc2 83*8f23464aSJacek Caban func3 = otherdll.otherfunc3 EXPORTAS expfunc3 84*8f23464aSJacek Caban 85*8f23464aSJacek Caban#--- test2.def 86*8f23464aSJacek CabanLIBRARY test.dll 87*8f23464aSJacek CabanEXPORTS 88*8f23464aSJacek Caban func EXPORTAS expfunc 89*8f23464aSJacek Caban mydata EXPORTAS expdata DATA 90*8f23464aSJacek Caban 91*8f23464aSJacek Caban#--- test3.def 92*8f23464aSJacek CabanLIBRARY test.dll 93*8f23464aSJacek CabanEXPORTS 94*8f23464aSJacek Caban mydata EXPORTAS 95