libabigail
Loading...
Searching...
No Matches
abg-reader.cc File Reference

This file contains the definitions of the entry points to de-serialize an instance of abigail::translation_unit from an ABI Instrumentation file in libabigail native XML format. This native XML format is named "ABIXML". More...

#include "config.h"
#include <assert.h>
#include <libxml/xmlreader.h>
#include <libxml/xmlstring.h>
#include <cerrno>
#include <cstdlib>
#include <cstring>
#include <deque>
#include <memory>
#include <sstream>
#include <unordered_map>
#include <algorithm>
#include "abg-suppression-priv.h"
#include "abg-internal.h"
#include "abg-ir-priv.h"
#include "abg-symtab-reader.h"
#include "abg-libxml-utils.h"
#include "abg-reader.h"
#include "abg-corpus.h"
#include "abg-fe-iface.h"
#include "abg-tools-utils.h"
Include dependency graph for abg-reader.cc:

Go to the source code of this file.

Namespaces

namespace  abigail
 Toplevel namespace for libabigail.
 
namespace  abigail::abixml
 The namespace for the native XML file format reader.
 

Macros

#define MAYBE_MAP_TYPE_WITH_TYPE_ID(type, xml_node)
 
#define RECORD_ARTIFACT_AS_USED_BY(rdr, used, user)
 
#define RECORD_ARTIFACTS_AS_USED_IN_FN_DECL(rdr, fn)
 
#define RECORD_ARTIFACTS_AS_USED_IN_FN_TYPE(rdr, fn_type)
 

Typedefs

typedef shared_ptr< reader > reader_sptr
 
typedef unordered_map< string, vector< string > > string_strings_map_type
 Convenience typedef for an unordered map of string to a vector of strings.
 

Functions

void add_reader_suppressions (reader &rdr, const suppr::suppressions_type &supprs)
 Add suppressions specifications to the set of suppressions to be used during the construction of the ABI internal representation (the ABI corpus) from ELF and DWARF.
 
void consider_types_not_reachable_from_public_interfaces (fe_iface &iface, bool flag)
 Configure the reader so that types not reachable from public interface are taken into account when the abixml file is read.
 
fe_iface_sptr create_reader (const string &path, environment &env)
 Create an xml_reader::reader to read a native XML ABI file.
 
fe_iface_sptr create_reader (std::istream *in, environment &env)
 Create an xml_reader::reader to read a native XML ABI from an input stream..
 
corpus_sptr read_corpus_from_abixml (std::istream *in, environment &env)
 De-serialize an ABI corpus from an input XML document which root node is 'abi-corpus'.
 
corpus_sptr read_corpus_from_abixml_file (const string &path, environment &env)
 De-serialize an ABI corpus from an XML document file which root node is 'abi-corpus'.
 
corpus_group_sptr read_corpus_group_from_abixml (std::istream *in, environment &env)
 De-serialize an ABI corpus group from an input XML document which root node is 'abi-corpus-group'.
 
corpus_group_sptr read_corpus_group_from_abixml_file (const string &path, environment &env)
 De-serialize an ABI corpus group from an XML document file which root node is 'abi-corpus-group'.
 
corpus_group_sptr read_corpus_group_from_input (fe_iface &iface)
 Parse the input XML document containing an ABI corpus group, represented by an 'abi-corpus-group' element node, associated to the current context.
 
translation_unit_sptr read_translation_unit (fe_iface &iface)
 Parse a translation unit from an abixml input from a given context.
 
translation_unit_sptr read_translation_unit_from_buffer (const string &buffer, environment &env)
 Parse an ABI instrumentation file (in XML format) from an in-memory buffer.
 
translation_unit_sptr read_translation_unit_from_file (const string &input_file, environment &env)
 Parse an ABI instrumentation file (in XML format) at a given path.
 
translation_unit_sptr read_translation_unit_from_istream (istream *in, environment &env)
 De-serialize a translation unit from an ABI Instrumentation xml file coming from an input stream.
 

Detailed Description

This file contains the definitions of the entry points to de-serialize an instance of abigail::translation_unit from an ABI Instrumentation file in libabigail native XML format. This native XML format is named "ABIXML".

Definition in file abg-reader.cc.

Macro Definition Documentation

◆ MAYBE_MAP_TYPE_WITH_TYPE_ID

#define MAYBE_MAP_TYPE_WITH_TYPE_ID ( type,
xml_node )

Definition at line 83 of file abg-reader.cc.

◆ RECORD_ARTIFACT_AS_USED_BY

#define RECORD_ARTIFACT_AS_USED_BY ( rdr,
used,
user )

Definition at line 1651 of file abg-reader.cc.

◆ RECORD_ARTIFACTS_AS_USED_IN_FN_DECL

#define RECORD_ARTIFACTS_AS_USED_IN_FN_DECL ( rdr,
fn )

Definition at line 1652 of file abg-reader.cc.

◆ RECORD_ARTIFACTS_AS_USED_IN_FN_TYPE

#define RECORD_ARTIFACTS_AS_USED_IN_FN_TYPE ( rdr,
fn_type )

Definition at line 1653 of file abg-reader.cc.