@@ -839,7 +839,8 @@ private:
const version& ve,
visibility vi,
bool is_linux_string_cst = false,
- bool is_in_ksymtab = false);
+ bool is_in_ksymtab = false,
+ bool is_suppressed = false);
elf_symbol(const elf_symbol&);
@@ -863,7 +864,8 @@ public:
const version& ve,
visibility vi,
bool is_linux_string_cst = false,
- bool is_in_ksymtab = false);
+ bool is_in_ksymtab = false,
+ bool is_suppressed = false);
const environment*
get_environment() const;
@@ -937,6 +939,12 @@ public:
void
set_is_in_ksymtab(bool is_in_ksymtab);
+ bool
+ is_suppressed() const;
+
+ void
+ set_is_suppressed(bool is_suppressed);
+
const elf_symbol_sptr
get_main_symbol() const;
@@ -1311,6 +1311,7 @@ struct elf_symbol::priv
bool is_common_;
bool is_linux_string_cst_;
bool is_in_ksymtab_;
+ bool is_suppressed_;
elf_symbol_wptr main_symbol_;
elf_symbol_wptr next_alias_;
elf_symbol_wptr next_common_instance_;
@@ -1326,7 +1327,8 @@ struct elf_symbol::priv
is_defined_(false),
is_common_(false),
is_linux_string_cst_(false),
- is_in_ksymtab_(false)
+ is_in_ksymtab_(false),
+ is_suppressed_(false)
{}
priv(const environment* e,
@@ -1340,7 +1342,8 @@ struct elf_symbol::priv
const elf_symbol::version& ve,
elf_symbol::visibility vi,
bool is_linux_string_cst,
- bool is_in_ksymtab)
+ bool is_in_ksymtab,
+ bool is_suppressed)
: env_(e),
index_(i),
size_(s),
@@ -1352,7 +1355,8 @@ struct elf_symbol::priv
is_defined_(d),
is_common_(c),
is_linux_string_cst_(is_linux_string_cst),
- is_in_ksymtab_(is_in_ksymtab)
+ is_in_ksymtab_(is_in_ksymtab),
+ is_suppressed_(is_suppressed)
{
if (!is_common_)
is_common_ = type_ == COMMON_TYPE;
@@ -1409,7 +1413,8 @@ elf_symbol::elf_symbol(const environment* e,
const version& ve,
visibility vi,
bool is_linux_string_cst,
- bool is_in_ksymtab)
+ bool is_in_ksymtab,
+ bool is_suppressed)
: priv_(new priv(e,
i,
s,
@@ -1421,7 +1426,8 @@ elf_symbol::elf_symbol(const environment* e,
ve,
vi,
is_linux_string_cst,
- is_in_ksymtab))
+ is_in_ksymtab,
+ is_suppressed))
{}
/// Factory of instances of @ref elf_symbol.
@@ -1479,11 +1485,12 @@ elf_symbol::create(const environment* e,
const version& ve,
visibility vi,
bool is_linux_string_cst,
- bool is_in_ksymtab)
+ bool is_in_ksymtab,
+ bool is_suppressed)
{
elf_symbol_sptr sym(new elf_symbol(e, i, s, n, t, b, d, c, ve, vi,
is_linux_string_cst,
- is_in_ksymtab));
+ is_in_ksymtab, is_suppressed));
sym->priv_->main_symbol_ = sym;
return sym;
}
@@ -1711,6 +1718,14 @@ void
elf_symbol::set_is_in_ksymtab(bool is_in_ksymtab)
{priv_->is_in_ksymtab_ = is_in_ksymtab;}
+bool
+elf_symbol::is_suppressed() const
+{return priv_->is_suppressed_;}
+
+void
+elf_symbol::set_is_suppressed(bool is_suppressed)
+{priv_->is_suppressed_ = is_suppressed;}
+
/// @name Elf symbol aliases
///
/// An alias A for an elf symbol S is a symbol that is defined at the