llvm-objdump: support dumping AUX records for weak externals
This is a support COFF feature. Ensure that we can display the weak externals auxiliary symbol. It contains useful information (such as the default binding and how to resolve the symbol). llvm-svn: 270648
This commit is contained in:
parent
655a145e83
commit
e7e467aaa9
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
header:
|
||||
Machine: IMAGE_FILE_MACHINE_ARMNT
|
||||
Characteristics: [ ]
|
||||
sections:
|
||||
- Name: .rdata
|
||||
Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
|
||||
Alignment: 1
|
||||
SectionData: ''
|
||||
symbols:
|
||||
- Name: Function
|
||||
Value: 0
|
||||
SectionNumber: 0
|
||||
SimpleType: IMAGE_SYM_TYPE_NULL
|
||||
ComplexType: IMAGE_SYM_DTYPE_NULL
|
||||
StorageClass: IMAGE_SYM_CLASS_WEAK_EXTERNAL
|
||||
WeakExternal:
|
||||
TagIndex: 9
|
||||
Characteristics: IMAGE_WEAK_EXTERN_SEARCH_LIBRARY
|
||||
- Name: .weak.Function.default
|
||||
Value: 0
|
||||
SectionNumber: -1
|
||||
SimpleType: IMAGE_SYM_TYPE_NULL
|
||||
ComplexType: IMAGE_SYM_DTYPE_NULL
|
||||
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
|
||||
...
|
|
@ -0,0 +1,5 @@
|
|||
RUN: yaml2obj %p/Inputs/COFF/weak-externals.yaml | llvm-objdump -t - | FileCheck %s
|
||||
|
||||
CHECK: [ 0](sec 0)(fl 0x00)(ty 0)(scl 69) (nx 1) 0x00000000 Function
|
||||
CHECK: AUX tagndx 9 type 2
|
||||
|
|
@ -653,6 +653,12 @@ void llvm::printCOFFSymbolTable(const COFFObjectFile *coff) {
|
|||
|
||||
SI = SI + Symbol->getNumberOfAuxSymbols();
|
||||
break;
|
||||
} else if (Symbol->isWeakExternal()) {
|
||||
const coff_aux_weak_external *awe;
|
||||
error(coff->getAuxSymbol<coff_aux_weak_external>(SI + 1, awe));
|
||||
|
||||
outs() << "AUX " << format("tagndx %d type %d\n", awe->TagIndex,
|
||||
awe->Characteristics);
|
||||
} else {
|
||||
outs() << "AUX Unknown\n";
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue