// expression.cc -- expressions in linker scripts for gold
-// Copyright (C) 2006-2017 Free Software Foundation, Inc.
+// Copyright (C) 2006-2020 Free Software Foundation, Inc.
// Written by Ian Lance Taylor <iant@google.com>.
// This file is part of gold.
uint64_t
value(const Expression_eval_info*);
+ void
+ set_expr_sym_in_real_elf(Symbol_table* symtab) const
+ {
+ Symbol* sym = symtab->lookup(this->name_.c_str());
+ if (sym != NULL)
+ sym->set_in_real_elf();
+ }
+
void
print(FILE* f) const
{ fprintf(f, "%s", this->name_.c_str()); }
arg_print(FILE* f) const
{ this->arg_->print(f); }
+ void
+ set_expr_sym_in_real_elf(Symbol_table* symtab) const
+ { return this->arg_->set_expr_sym_in_real_elf(symtab); }
+
private:
Expression* arg_;
};
fprintf(f, ")");
}
+ void
+ set_expr_sym_in_real_elf(Symbol_table* symtab) const
+ {
+ this->left_->set_expr_sym_in_real_elf(symtab);
+ this->right_->set_expr_sym_in_real_elf(symtab);
+ }
+
private:
Expression* left_;
Expression* right_;
Output_section** section_pointer,
uint64_t* alignment_pointer) const
{
- return this->arg1_->eval_maybe_dot(eei->symtab, eei->layout,
+ return this->arg2_->eval_maybe_dot(eei->symtab, eei->layout,
eei->check_assertions,
eei->is_dot_available,
eei->dot_value,
Output_section** section_pointer,
uint64_t* alignment_pointer) const
{
- return this->arg1_->eval_maybe_dot(eei->symtab, eei->layout,
+ return this->arg3_->eval_maybe_dot(eei->symtab, eei->layout,
eei->check_assertions,
eei->is_dot_available,
eei->dot_value,
arg3_print(FILE* f) const
{ this->arg3_->print(f); }
+ void
+ set_expr_sym_in_real_elf(Symbol_table* symtab) const
+ {
+ this->arg1_->set_expr_sym_in_real_elf(symtab);
+ this->arg2_->set_expr_sym_in_real_elf(symtab);
+ this->arg3_->set_expr_sym_in_real_elf(symtab);
+ }
+
private:
Expression* arg1_;
Expression* arg2_;