File tree Expand file tree Collapse file tree 7 files changed +34
-12
lines changed Expand file tree Collapse file tree 7 files changed +34
-12
lines changed Original file line number Diff line number Diff line change @@ -65,6 +65,8 @@ class COFFImportFile : public SymbolicFile {
6565
6666 uint16_t getMachine () const { return getCOFFImportHeader ()->Machine ; }
6767
68+ StringRef getFileFormatName () const ;
69+
6870private:
6971 bool isData () const {
7072 return getCOFFImportHeader ()->getType () == COFF::IMPORT_DATA;
Original file line number Diff line number Diff line change @@ -33,6 +33,25 @@ using namespace llvm;
3333namespace llvm {
3434namespace object {
3535
36+ StringRef COFFImportFile::getFileFormatName () const {
37+ switch (getMachine ()) {
38+ case COFF::IMAGE_FILE_MACHINE_I386:
39+ return " COFF-import-file-i386" ;
40+ case COFF::IMAGE_FILE_MACHINE_AMD64:
41+ return " COFF-import-file-x86-64" ;
42+ case COFF::IMAGE_FILE_MACHINE_ARMNT:
43+ return " COFF-import-file-ARM" ;
44+ case COFF::IMAGE_FILE_MACHINE_ARM64:
45+ return " COFF-import-file-ARM64" ;
46+ case COFF::IMAGE_FILE_MACHINE_ARM64EC:
47+ return " COFF-import-file-ARM64EC" ;
48+ case COFF::IMAGE_FILE_MACHINE_ARM64X:
49+ return " COFF-import-file-ARM64X" ;
50+ default :
51+ return " COFF-import-file-<unknown arch>" ;
52+ }
53+ }
54+
3655static uint16_t getImgRelRelocation (MachineTypes Machine) {
3756 switch (Machine) {
3857 default :
Original file line number Diff line number Diff line change 11; RUN: llvm-dlltool -m i386:x86-64 --input-def %s --output-lib %t.a
2- ; RUN: llvm-readobj %t.a | FileCheck %s
2+ ; RUN: llvm-readobj %t.a | FileCheck %s --check-prefixes=CHECK,CHECK-X64
33; RUN: llvm-nm --print-armap %t.a | FileCheck --check-prefix=SYMTAB %s
44; RUN: llvm-dlltool -m arm64 --input-def %s --output-lib %t.a
5- ; RUN: llvm-readobj %t.a | FileCheck %s
5+ ; RUN: llvm-readobj %t.a | FileCheck %s --check-prefixes=CHECK,CHECK-ARM64
66; RUN: llvm-nm --print-armap %t.a | FileCheck --check-prefix=SYMTAB %s
77
88LIBRARY test.dll
@@ -13,7 +13,8 @@ TestFunction3 ; This is a comment
1313AnotherFunction
1414
1515; CHECK: File: test.dll
16- ; CHECK: Format: COFF-import-file
16+ ; CHECK-X64: Format: COFF-import-file-x86-64
17+ ; CHECK-ARM64: Format: COFF-import-file-ARM64
1718; CHECK: Type: code
1819; CHECK: Name type: name
1920; CHECK-NEXT: Symbol: __imp_TestFunction1
Original file line number Diff line number Diff line change @@ -26,19 +26,19 @@ READOBJ-NEXT: Arch: aarch64
2626READOBJ-NEXT: AddressSize: 64bit
2727READOBJ-EMPTY:
2828READOBJ-NEXT: File: test.lib(test.dll)
29- READOBJ-NEXT: Format: COFF-ARM64
29+ READOBJ-NEXT: Format: COFF-ARM64EC
3030READOBJ-NEXT: Arch: aarch64
3131READOBJ-NEXT: AddressSize: 64bit
3232READOBJ-EMPTY:
3333READOBJ-NEXT: File: test.dll
34- READOBJ-NEXT: Format: COFF-import-file
34+ READOBJ-NEXT: Format: COFF-import-file-ARM64EC
3535READOBJ-NEXT: Type: code
3636READOBJ-NEXT: Name type: name
3737READOBJ-NEXT: Symbol: __imp_funcexp
3838READOBJ-NEXT: Symbol: funcexp
3939READOBJ-EMPTY:
4040READOBJ-NEXT: File: test.dll
41- READOBJ-NEXT: Format: COFF-import-file
41+ READOBJ-NEXT: Format: COFF-import-file-ARM64EC
4242READOBJ-NEXT: Type: data
4343READOBJ-NEXT: Name type: name
4444READOBJ-NEXT: Symbol: __imp_dataexp
Original file line number Diff line number Diff line change 11RUN: llvm-readobj --coff-exports %p/Inputs/library.lib | FileCheck %s
22
33CHECK: File: library.dll
4- CHECK: Format: COFF-import-file
4+ CHECK: Format: COFF-import-file-i386
55CHECK: Type: const
66CHECK: Name type: undecorate
77CHECK: Symbol: __imp__constant
88
99CHECK: File: library.dll
10- CHECK: Format: COFF-import-file
10+ CHECK: Format: COFF-import-file-i386
1111CHECK: Type: data
1212CHECK: Name type: noprefix
1313CHECK: Symbol: __imp__data
1414
1515CHECK: File: library.dll
16- CHECK: Format: COFF-import-file
16+ CHECK: Format: COFF-import-file-i386
1717CHECK: Type: code
1818CHECK: Name type: name
1919CHECK: Symbol: __imp__function
2020
2121CHECK: File: library.dll
22- CHECK: Format: COFF-import-file
22+ CHECK: Format: COFF-import-file-i386
2323CHECK: Type: code
2424CHECK: Name type: ordinal
2525CHECK: Symbol: __imp__ordinal
Original file line number Diff line number Diff line change @@ -320,7 +320,7 @@ symbols:
320320# RUN: llvm-readobj -h %p/Inputs/magic.coff-importlib \
321321# RUN: | FileCheck %s --strict-whitespace --match-full-lines --check-prefix IMPORTLIB
322322
323- # IMPORTLIB:Format: COFF-import-file
323+ # IMPORTLIB:Format: COFF-import-file-i386
324324# IMPORTLIB-NEXT:Type: code
325325# IMPORTLIB-NEXT:Name type: noprefix
326326# IMPORTLIB-NEXT:Symbol: __imp__func
Original file line number Diff line number Diff line change @@ -23,7 +23,7 @@ namespace llvm {
2323void dumpCOFFImportFile (const COFFImportFile *File, ScopedPrinter &Writer) {
2424 Writer.startLine () << ' \n ' ;
2525 Writer.printString (" File" , File->getFileName ());
26- Writer.printString (" Format" , " COFF-import-file " );
26+ Writer.printString (" Format" , File-> getFileFormatName () );
2727
2828 const coff_import_header *H = File->getCOFFImportHeader ();
2929 switch (H->getType ()) {
You can’t perform that action at this time.
0 commit comments