// symtab.h -- the gold symbol table -*- C++ -*-
-// 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.
set_in_dyn()
{ this->in_dyn_ = true; }
+ // Return whether this symbol is defined in a dynamic object.
+ bool
+ from_dyn() const
+ { return this->source_ == FROM_OBJECT && this->object()->is_dynamic(); }
+
// Return whether this symbol has been seen in a real ELF object.
// (IN_REG will return TRUE if the symbol has been seen in either
// a real ELF object or an object claimed by a plugin.)
// Instances of this class should always be created at a specific
// size.
Symbol()
- { memset(this, 0, sizeof *this); }
+ { memset(static_cast<void*>(this), 0, sizeof *this); }
// Initialize the general fields.
void
saw_undefined() const
{ return this->saw_undefined_; }
+ void
+ set_has_gnu_output()
+ { this->has_gnu_output_ = true; }
+
// Allocate the common symbols
void
allocate_commons(Layout*, Mapfile*);
// The number of global dynamic symbols (including forced-local symbols),
// or 0 if none.
unsigned int dynamic_count_;
+ // Set if a STT_GNU_IFUNC or STB_GNU_UNIQUE symbol will be output.
+ bool has_gnu_output_;
// The symbol hash table.
Symbol_table_type table_;
// A pool of symbol names. This is used for all global symbols.