12#include "abg-internal.h"
14ABG_BEGIN_EXPORT_DECLARATIONS
19ABG_END_EXPORT_DECLARATIONS
35 priv(
const std::string& path, environment& e)
93{
return priv_->options;}
100{
return priv_->options;}
109{
return priv_->corpus_path;}
118{priv_->corpus_path = p;}
125{
return priv_->dt_soname;}
132{priv_->dt_soname = soname;}
141{
return priv_->options.load_in_linux_kernel_mode;}
150{
return priv_->suppressions;}
159{
return priv_->suppressions;}
168{priv_->suppressions = supprs;}
194 for (
const auto& s : supprs)
195 if (s->get_drops_artifact_from_ir())
207 priv_->corpus = std::make_shared<ir::corpus>(
options().env,
210 return priv_->corpus;
225{
return priv_->corpus_group;}
230const corpus_group_sptr&
241{priv_->corpus_group = cg;}
259 return corpus_sptr();
272 if (main_corpus.get() ==
corpus().get())
297 return corpus_sptr();
309 corpus()->get_exported_decls_builder().get())
310 b->maybe_add_fn_to_exported_fns(
const_cast<function_decl*
>(fn));
322 corpus()->get_exported_decls_builder().get())
323 b->maybe_add_var_to_exported_vars(var);
337 |
static_cast<unsigned>(r));
351 &
static_cast<unsigned>(r));
397 str +=
"could not find debug info";
400 str +=
"could not find alternate debug info";
403 str +=
"could not load ELF symbols";
This file contains the declarations for the fe_iface a.k.a "Front End Interface".
The base class of all libabigail front-ends: The Front End Interface.
bool has_corpus_group() const
Test if there is a corpus group being built.
status
The status of the fe_iface::read_corpus call.
@ STATUS_NO_SYMBOLS_FOUND
This status is for when the symbols of the ELF binaries could not be read.
@ STATUS_DEBUG_INFO_NOT_FOUND
This status is for when the debug info could not be read.
@ STATUS_ALT_DEBUG_INFO_NOT_FOUND
This status is for when the alternate debug info could not be found.
const options_type & options() const
Getter of the the options of the current Front End Interface.
void maybe_add_fn_to_exported_decls(const function_decl *fn)
Try and add the representation of the ABI of a function to the set of exported declarations of the cu...
corpus_sptr corpus()
Getter for the ABI corpus being built by the current front-end.
suppr::suppressions_type & suppressions()
Getter of the vector of suppression specifications associated with the current front-end.
void maybe_add_var_to_exported_decls(const var_decl *var)
Try and add the representation of the ABI of a variable to the set of exported declarations of the cu...
corpus_group_sptr & corpus_group()
Getter for the ABI corpus group being built by the current front-end.
fe_iface(const std::string &corpus_path, environment &e)
Constructor of the type fe_iface.
virtual void initialize(const std::string &corpus_path)
Re-initialize the current Front End.
corpus_sptr should_reuse_type_from_corpus_group()
Return true if the current corpus is part of a corpus group being built and if it's not the main corp...
bool load_in_linux_kernel_mode() const
Test if the input binary is to be considered as a Linux Kernel binary.
bool current_corpus_is_main_corpus_from_current_group()
Test if the current corpus being built is the main corpus of the current corpus group.
virtual ~fe_iface()
Desctructor of the Front End Interface.
const std::string & corpus_path() const
Getter of the path to the file which an ABI corpus is to be created for.
const string & dt_soname() const
Getter for the SONAME of the analyzed binary.
corpus_sptr main_corpus_from_current_group()
Return the main corpus from the current corpus group, if any.
void add_suppressions(const suppr::suppressions_type &)
Add suppressions specifications to the set of suppressions to be used during the construction of the ...
Abstracts the building of the set of exported variables and functions.
This is the abstraction of a set of translation units (themselves seen as bundles of unitary abi arte...
This is an abstraction of the set of resources necessary to manage several aspects of the internal re...
Abstraction for a function declaration.
Abstracts a variable declaration.
vector< suppression_sptr > suppressions_type
Convenience typedef for a vector of suppression_sptr.
Toplevel namespace for libabigail.
fe_iface::status & operator|=(fe_iface::status &l, fe_iface::status r)
The bitwise |= operator for the fe_iface::status type.
fe_iface::status & operator&=(fe_iface::status &l, fe_iface::status r)
The bitwise &= operator for the fe_iface::status type.
fe_iface::status operator&(fe_iface::status l, fe_iface::status r)
The bitwise AND operator for the fe_iface::status type.
fe_iface::status operator|(fe_iface::status l, fe_iface::status r)
The bitwise OR operator for the fe_iface::status type.
std::string status_to_diagnostic_string(fe_iface::status s)
Return a diagnostic status with english sentences to describe the problems encoded in a given abigail...
The generic options that control the behaviour of all Front-End interfaces.
options_type(environment &)
Constructor of the type fe_iface::options_type.