mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-13 22:58:50 +00:00
Record a symbol's size which is needed for ELF symbol tables.
llvm-svn: 111170
This commit is contained in:
parent
68a31bf9c6
commit
162726c305
@ -24,6 +24,7 @@ namespace llvm {
|
||||
class raw_ostream;
|
||||
class MCAsmLayout;
|
||||
class MCAssembler;
|
||||
class MCBinaryExpr;
|
||||
class MCContext;
|
||||
class MCCodeEmitter;
|
||||
class MCExpr;
|
||||
@ -453,6 +454,10 @@ public:
|
||||
// common symbol can never get a definition.
|
||||
uint64_t CommonSize;
|
||||
|
||||
/// SymbolSize - An expression describing how to calculate the size of
|
||||
/// a symbol. If a symbol has no size this field will be NULL.
|
||||
const MCExpr *SymbolSize;
|
||||
|
||||
/// CommonAlign - The alignment of the symbol, if it is 'common'.
|
||||
//
|
||||
// FIXME: Pack this in with other fields?
|
||||
@ -510,6 +515,15 @@ public:
|
||||
return CommonSize;
|
||||
}
|
||||
|
||||
void setSize(const MCExpr *SS) {
|
||||
SymbolSize = SS;
|
||||
}
|
||||
|
||||
const MCExpr *getSize() const {
|
||||
return SymbolSize;
|
||||
}
|
||||
|
||||
|
||||
/// getCommonAlignment - Return the alignment of a 'common' symbol.
|
||||
unsigned getCommonAlignment() const {
|
||||
assert(isCommon() && "Not a 'common' symbol!");
|
||||
|
@ -211,7 +211,8 @@ MCSymbolData::MCSymbolData(const MCSymbol &_Symbol, MCFragment *_Fragment,
|
||||
uint64_t _Offset, MCAssembler *A)
|
||||
: Symbol(&_Symbol), Fragment(_Fragment), Offset(_Offset),
|
||||
IsExternal(false), IsPrivateExtern(false),
|
||||
CommonSize(0), CommonAlign(0), Flags(0), Index(0)
|
||||
CommonSize(0), SymbolSize(0), CommonAlign(0),
|
||||
Flags(0), Index(0)
|
||||
{
|
||||
if (A)
|
||||
A->getSymbolList().push_back(this);
|
||||
|
Loading…
Reference in New Issue
Block a user