36 offset_t size = 0, align = 1;
37 std::string section_name, alternative_section_name;
40 SymbolDefinition(std::string name,
binding_type binding,
Location location, offset_t size, offset_t align, std::string section_name =
"", std::string alternative_section_name =
"")
41 : name(name), binding(binding), location(location), size(size), align(align), section_name(section_name), alternative_section_name(alternative_section_name)
50 static SymbolDefinition CreateUndefined(std::string name, offset_t size = 0, offset_t align = 1);
51 static SymbolDefinition CreateLocal(std::string name, Location location, offset_t size = 0, offset_t align = 1);
52 static SymbolDefinition CreateGlobal(std::string name, Location location, offset_t size = 0, offset_t align = 1);
53 static SymbolDefinition CreateWeak(std::string name, Location location, offset_t size = 0, offset_t align = 1);
54 static SymbolDefinition CreateCommon(std::string name, std::string section, offset_t size = 0, offset_t align = 1);
55 static SymbolDefinition CreateCommon(std::string name, std::string section, offset_t size, offset_t align, std::string alternative_section);
56 static SymbolDefinition CreateCommon(std::string name, std::string section, std::string alternative_section);
57 static SymbolDefinition CreateLocalCommon(std::string name, std::string section, offset_t size = 0, offset_t align = 1);
58 static SymbolDefinition CreateLocalCommon(std::string name, std::string section, offset_t size, offset_t align, std::string alternative_section);
59 static SymbolDefinition CreateLocalCommon(std::string name, std::string section, std::string alternative_section);
61 bool operator ==(
const SymbolDefinition& other)
const;
64 bool IsCommon()
const;
65 bool IsAllocated()
const;
76 bool Displace(
const Displacement& displacement);
79 std::ostream& operator <<(std::ostream& out,
const SymbolDefinition& symbol);