mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
Reland r319090, "COFF: Do not create SectionChunks for discarded comdat sections." with a fix for debug sections.
If /debug was not specified, readSection will return a null pointer for debug sections. If the debug section is associative with another section, we need to make sure that the section returned from readSection is not a null pointer before adding it as an associative section. Differential Revision: https://reviews.llvm.org/D40533 llvm-svn: 319133
This commit is contained in:
parent
799174df2d
commit
280d46dc97
@ -275,6 +275,8 @@ struct coff_symbol_generic {
|
||||
support::ulittle32_t Value;
|
||||
};
|
||||
|
||||
struct coff_aux_section_definition;
|
||||
|
||||
class COFFSymbolRef {
|
||||
public:
|
||||
COFFSymbolRef() = default;
|
||||
@ -346,6 +348,18 @@ public:
|
||||
return (getType() & 0xF0) >> COFF::SCT_COMPLEX_TYPE_SHIFT;
|
||||
}
|
||||
|
||||
template <typename T> const T *getAux() const {
|
||||
return CS16 ? reinterpret_cast<const T *>(CS16 + 1)
|
||||
: reinterpret_cast<const T *>(CS32 + 1);
|
||||
}
|
||||
|
||||
const coff_aux_section_definition *getSectionDefinition() const {
|
||||
if (!getNumberOfAuxSymbols() ||
|
||||
getStorageClass() != COFF::IMAGE_SYM_CLASS_STATIC)
|
||||
return nullptr;
|
||||
return getAux<coff_aux_section_definition>();
|
||||
}
|
||||
|
||||
bool isAbsolute() const {
|
||||
return getSectionNumber() == -1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user