libabigail
abg-corpus.h
Go to the documentation of this file.
1 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
2 // -*- mode: C++ -*-
3 //
4 // Copyright (C) 2013-2025 Red Hat, Inc.
5 
6 /// @file
7 
8 #ifndef __ABG_CORPUS_H__
9 #define __ABG_CORPUS_H__
10 
11 #include <abg-ir.h>
12 
13 namespace abigail
14 {
15 
16 namespace ir
17 {
18 
19 /// This is the abstraction of a set of translation units (themselves
20 /// seen as bundles of unitary abi artefacts like types and decls)
21 /// bundled together as a corpus. A corpus is thus the Application
22 /// binary interface of a program, a library or just a set of modules
23 /// put together.
24 class corpus
25 {
26 public:
27  /// A convenience typedef for std::vector<string>.
28  typedef vector<string> strings_type;
29 
30  /// Convenience typedef for std::vector<abigail::ir::function_decl*>
31  typedef vector<const function_decl*> functions;
32 
33  /// Convenience typedef for std::unordered_set<const function_decl*>
34  typedef std::unordered_set<const function_decl*> functions_set;
35 
36  ///Convenience typedef for std::vector<abigail::ir::var_decl*>
37  typedef vector<var_decl_sptr> variables;
38 
39  /// Convenience typedef for std::unordered_set<const var_decl*>.
40  typedef std::unordered_set<var_decl_sptr> variables_set;
41 
43 
44  /// Convenience typedef for shared_ptr<exported_decls_builder>.
45  typedef shared_ptr<exported_decls_builder> exported_decls_builder_sptr;
46 
47  /// This abstracts where the corpus comes from. That is, either it
48  /// has been read from the native xml format, from DWARF or built
49  /// artificially using the library's API.
50  enum origin
51  {
52  ARTIFICIAL_ORIGIN = 0,
53  NATIVE_XML_ORIGIN = 1,
54  ELF_ORIGIN = 1 << 1,
55  DWARF_ORIGIN = 1 << 2,
56  CTF_ORIGIN = 1 << 3,
57  BTF_ORIGIN = 1 << 4,
58  LINUX_KERNEL_BINARY_ORIGIN = 1 << 5
59  };
60 
61 private:
62  corpus();
63 
64  void set_group(corpus_group*);
65  void init_format_version();
66 
67 public:
68  struct priv;
69  std::unique_ptr<priv> priv_;
70 
71  corpus(const ir::environment&, const string& path= "");
72 
73  virtual ~corpus();
74 
75  const environment&
76  get_environment() const;
77 
78  bool
79  do_log() const;
80 
81  void
82  do_log(bool);
83 
84  void
85  add(const translation_unit_sptr&);
86 
87  const translation_units&
88  get_translation_units() const;
89 
91  find_translation_unit(const string &path) const;
92 
93  void
95 
96  type_maps&
97  get_types();
98 
99  const type_maps&
100  get_types() const;
101 
102  type_maps&
104 
105  const type_maps&
106  get_type_per_loc_map() const;
107 
108  virtual bool
110 
111  void
113 
114  bool
116 
117  const vector<type_base_wptr>&
119 
120  const corpus_group*
121  get_group() const;
122 
123  corpus_group*
124  get_group();
125 
126  origin
127  get_origin() const;
128 
129  void
131 
132  string&
134 
135  void
136  set_format_major_version_number(const string&);
137 
138  string&
140 
141  void
142  set_format_minor_version_number(const string&);
143 
144  string&
145  get_path() const;
146 
147  void
148  set_path(const string&);
149 
150  const vector<string>&
151  get_needed() const;
152 
153  void
154  set_needed(const vector<string>&);
155 
156  const string&
157  get_soname();
158 
159  void
160  set_soname(const string&);
161 
162  const string&
163  get_architecture_name() const;
164 
165  void
166  set_architecture_name(const string&);
167 
168  virtual bool
169  is_empty() const;
170 
171  bool
172  operator==(const corpus&) const;
173 
174  void
175  set_symtab(symtab_reader::symtab_sptr);
176 
177  const symtab_reader::symtab_sptr&
178  get_symtab() const;
179 
180  virtual const string_elf_symbols_map_type&
181  get_fun_symbol_map() const;
182 
185 
186  virtual const elf_symbols&
187  get_sorted_fun_symbols() const;
188 
189  const elf_symbols&
191 
192  virtual const string_elf_symbols_map_type&
193  get_var_symbol_map() const;
194 
197 
198  virtual const elf_symbols&
199  get_sorted_var_symbols() const;
200 
201  const elf_symbols&
203 
204  const elf_symbol_sptr
205  lookup_function_symbol(const string& n) const;
206 
207  const elf_symbol_sptr
208  lookup_function_symbol(const string& symbol_name,
209  const elf_symbol::version& version) const;
210 
211  const elf_symbol_sptr
212  lookup_function_symbol(const elf_symbol& symbol) const;
213 
214  const elf_symbol_sptr
215  lookup_variable_symbol(const string& n) const;
216 
217  const elf_symbol_sptr
218  lookup_variable_symbol(const string& symbol_name,
219  const elf_symbol::version& version) const;
220 
221  const elf_symbol_sptr
222  lookup_variable_symbol(const elf_symbol& symbol) const;
223 
224  virtual const functions&
225  get_functions() const;
226 
227  virtual const std::unordered_set<function_decl*>*
228  lookup_functions(const interned_string& id) const;
229 
230  virtual const std::unordered_set<function_decl*>*
231  lookup_functions(const char* id) const;
232 
233  virtual const std::unordered_set<var_decl_sptr>*
234  lookup_variables(const interned_string& id) const;
235 
236  virtual const std::unordered_set<var_decl_sptr>*
237  lookup_variables(const char* id) const;
238 
239  void
240  sort_functions();
241 
242  virtual const variables&
243  get_variables() const;
244 
245  const functions_set&
246  get_undefined_functions() const;
247 
248  functions_set&
250 
251  const functions&
253 
254  const variables_set&
255  get_undefined_variables() const;
256 
257  variables_set&
259 
260  const variables&
262 
263  void
264  sort_variables();
265 
266  virtual const elf_symbols&
268 
269  virtual const elf_symbols&
271 
272  vector<string>&
274 
275  const vector<string>&
277 
278  vector<string>&
280 
281  const vector<string>&
283 
284  vector<string>&
286 
287  const vector<string>&
289 
290  vector<string>&
292 
293  const vector<string>&
295 
296  vector<string>&
298 
299  const vector<string>&
301 
302  vector<string>&
304 
305  const vector<string>&
307 
308  void
310 
311  exported_decls_builder_sptr
313 
314  friend class type_base;
315  friend class corpus_group;
316 };// end class corpus.
317 
320 
323 
326 
329 
330 /// Abstracts the building of the set of exported variables and
331 /// functions.
332 ///
333 /// Given a function or variable, this type can decide if it belongs
334 /// to the list of exported functions and variables based on all the
335 /// parameters needed.
337 {
338  // Forbid default construction.
340 
341 public:
342  class priv;
343  std::unique_ptr<priv> priv_;
344 
345  friend class corpus;
346 
348  variables& vars,
349  strings_type& fns_suppress_regexps,
350  strings_type& vars_suppress_regexps,
351  strings_type& fns_keep_regexps,
352  strings_type& vars_keep_regexps,
353  strings_type& sym_id_of_fns_to_keep,
354  strings_type& sym_id_of_vars_to_keep);
355 
356 
357  const functions&
358  exported_functions() const;
359 
360  functions&
362 
363  std::unordered_set<function_decl*>*
365 
366  const variables&
367  exported_variables() const;
368 
369  variables&
371 
372  bool
374 
375  bool
377 }; //corpus::exported_decls_builder
378 
379 /// Abstraction of a group of corpora.
380 ///
381 /// A corpus group is a union of corpora. It provides a unified view
382 /// of a set of corpora. It lets you get the set of functions,
383 /// variables and symbols that are defined and exported by a set of
384 /// corpora.
385 class corpus_group : public corpus
386 {
387  struct priv;
388  std::unique_ptr<priv> priv_;
389 
390  // Forbid copy
391  corpus_group(const corpus_group&);
392 
393 public:
394  typedef vector<corpus_sptr> corpora_type;
395 
396  corpus_group(const ir::environment&, const string&);
397 
398  virtual ~corpus_group();
399 
400  void add_corpus(const corpus_sptr&);
401 
402  bool has_corpus(const string&);
403 
404  const corpora_type&
405  get_corpora() const;
406 
407  const corpus_sptr
408  get_main_corpus() const;
409 
410  corpus_sptr
411  get_main_corpus();
412 
413  virtual bool
414  is_empty() const;
415 
416  virtual const corpus::functions&
417  get_functions() const;
418 
419  virtual const corpus::variables&
420  get_variables() const;
421 
422  virtual const string_elf_symbols_map_type&
423  get_var_symbol_map() const;
424 
425  virtual const string_elf_symbols_map_type&
426  get_fun_symbol_map() const;
427 
428  virtual const elf_symbols&
429  get_sorted_fun_symbols() const;
430 
431  virtual const elf_symbols&
432  get_sorted_var_symbols() const;
433 
434  virtual const elf_symbols&
436 
437  virtual const elf_symbols&
439 
440  unordered_set<interned_string, hash_interned_string>*
442 
443  virtual bool
445 
446  bool
447  operator==(const corpus_group&) const;
448 
449  virtual const std::unordered_set<function_decl*>*
450  lookup_functions(const interned_string& id) const;
451 
452  virtual const std::unordered_set<function_decl*>*
453  lookup_functions(const char* id) const;
454 
455  virtual const std::unordered_set<var_decl_sptr>*
456  lookup_variables(const interned_string& id) const;
457 
458  virtual const std::unordered_set<var_decl_sptr>*
459  lookup_variables(const char* id) const;
460 }; // end class corpus_group
461 
462 corpus_group_sptr
463 is_corpus_group(const corpus_sptr&);
464 }// end namespace ir
465 }//end namespace abigail
466 #endif //__ABG_CORPUS_H__
bool operator==(const std::string &l, const interned_string &r)
Equality operator.
Definition: abg-ir.cc:151
const variables & get_sorted_undefined_variables() const
Getter of the sorted vector of undefined variables of the corpus.
Definition: abg-corpus.cc:1555
const vector< type_base_wptr > & get_types_not_reachable_from_public_interfaces() const
Getter of a sorted vector of the types that are *NOT* reachable from public interfaces.
Definition: abg-corpus.cc:857
virtual bool recording_types_reachable_from_public_interface_supported()
Test if the recording of reachable types (and thus, indirectly, the recording of non-reachable types)...
Definition: abg-corpus.cc:808
virtual const string_elf_symbols_map_type & get_var_symbol_map() const
Getter for the variable symbols map.
Definition: abg-corpus.cc:1192
void sort_functions()
Sort the set of functions exported by this corpus.
Definition: abg-corpus.cc:1449
vector< string > & get_regex_patterns_of_fns_to_keep()
Accessor for the regex patterns describing the functions to keep into the public decl table...
Definition: abg-corpus.cc:1635
const variables_set & get_undefined_variables() const
Getter of the undefined variables of the corpus.
Definition: abg-corpus.cc:1539
virtual const elf_symbols & get_sorted_var_symbols() const
Getter for the sorted vector of variable symbols for this corpus.
Definition: abg-corpus.cc:1176
void set_path(const string &)
Set the file path associated to the corpus file.
Definition: abg-corpus.cc:995
corpus_group_sptr is_corpus_group(const corpus_sptr &corpus)
Test if a corpus is a corpus_group.
Definition: abg-corpus.cc:2373
const elf_symbols & get_sorted_undefined_fun_symbols() const
Getter for a sorted vector of the function symbols undefined in this corpus.
Definition: abg-corpus.cc:1165
string & get_format_minor_version_number() const
Getter of the minor version number of the abixml serialization format.
Definition: abg-corpus.cc:962
void set_needed(const vector< string > &)
Setter of the needed property of the corpus.
Definition: abg-corpus.cc:1018
bool operator==(const corpus &) const
Compare the current corpus against another one.
Definition: abg-corpus.cc:1102
An abstraction helper for type declarations.
Definition: abg-ir.h:2002
virtual const elf_symbols & get_unreferenced_variable_symbols() const
Get the set of variable symbols not referenced by any debug info, from all the corpora of the current...
Definition: abg-corpus.cc:2223
virtual const elf_symbols & get_sorted_fun_symbols() const
Get a sorted vector of the symbols of the functions exported by the corpora of the current group...
Definition: abg-corpus.cc:2109
void set_architecture_name(const string &)
Setter for the architecture name of the corpus.
Definition: abg-corpus.cc:1062
type_maps & get_types()
Get the maps that associate a name to a certain kind of type.
Definition: abg-corpus.cc:777
This is the abstraction of a set of translation units (themselves seen as bundles of unitary abi arte...
Definition: abg-corpus.h:24
virtual const std::unordered_set< function_decl * > * lookup_functions(const interned_string &id) const
Lookup the function which has a given function ID.
Definition: abg-corpus.cc:2289
const translation_units & get_translation_units() const
Return the list of translation units of the current corpus.
Definition: abg-corpus.cc:745
virtual const variables & get_variables() const
Return the public decl table of the global variables of the current corpus.
Definition: abg-corpus.cc:1479
void set_format_minor_version_number(const string &)
Setter of the minor version number of the abixml serialization format.
Definition: abg-corpus.cc:971
bool maybe_add_fn_to_exported_fns(function_decl *)
Consider at all the tunables that control wether a function should be added to the set of exported fu...
Definition: abg-corpus.cc:163
virtual const functions & get_functions() const
Return the functions public decl table of the current corpus.
Definition: abg-corpus.cc:1381
const functions & exported_functions() const
Getter for the reference to the vector of exported functions. This vector is shared with with the cor...
Definition: abg-corpus.cc:102
std::set< translation_unit_sptr, shared_translation_unit_comp > translation_units
Convenience typedef for an ordered set of translation_unit_sptr.
Definition: abg-ir.h:889
vector< string > & get_regex_patterns_of_vars_to_keep()
Accessor for the regex patterns describing the variables to keep into the public decl table...
Definition: abg-corpus.cc:1675
virtual const corpus::functions & get_functions() const
Get the functions exported by the corpora of the current corpus group.
Definition: abg-corpus.cc:2003
void sort_variables()
Sort the set of variables exported by this corpus.
Definition: abg-corpus.cc:1487
shared_ptr< var_decl > var_decl_sptr
Convenience typedef for a shared pointer on a var_decl.
Definition: abg-fwd.h:253
virtual const corpus::variables & get_variables() const
Get the global variables exported by the corpora of the current corpus group.
Definition: abg-corpus.cc:2041
const translation_unit_sptr find_translation_unit(const string &path) const
Find the translation unit that has a given path.
Definition: abg-corpus.cc:755
shared_ptr< translation_unit > translation_unit_sptr
Convenience typedef for a shared pointer on a translation_unit type.
Definition: abg-fwd.h:133
vector< string > & get_sym_ids_of_vars_to_keep()
Getter for the vector of variable symbol IDs to keep.
Definition: abg-corpus.cc:1695
void set_soname(const string &)
Setter for the soname property of the corpus.
Definition: abg-corpus.cc:1040
string & get_format_major_version_number() const
Getter of the major version number of the abixml serialization format.
Definition: abg-corpus.cc:945
const corpora_type & get_corpora() const
Getter of the vector of corpora held by the current corpus_group.
Definition: abg-corpus.cc:1965
std::vector< elf_symbol_sptr > elf_symbols
Convenience typedef for a vector of elf_symbol.
Definition: abg-ir.h:942
const vector< string > & get_needed() const
Getter of the needed property of the corpus.
Definition: abg-corpus.cc:1006
virtual const elf_symbols & get_sorted_fun_symbols() const
Return a sorted vector of function symbols for this corpus.
Definition: abg-corpus.cc:1156
const elf_symbol_sptr lookup_variable_symbol(const string &n) const
Look in the variable symbols map for a symbol with a given name.
Definition: abg-corpus.cc:1314
corpus::origin operator&=(corpus::origin &l, corpus::origin r)
Bitwise &= operator for the corpus::origin type.
Definition: abg-corpus.cc:1816
type_maps & get_type_per_loc_map()
Get the maps that associate a location string to a certain kind of type.
Definition: abg-corpus.cc:886
vector< var_decl_sptr > variables
Convenience typedef for std::vector
Definition: abg-corpus.h:37
virtual const elf_symbols & get_unreferenced_variable_symbols() const
Getter of the set of variable symbols that are not referenced by any variable exported by the current...
Definition: abg-corpus.cc:1589
void maybe_drop_some_exported_decls()
After the set of exported functions and variables have been built, consider all the tunables that con...
Definition: abg-corpus.cc:1712
Toplevel namespace for libabigail.
virtual const string_elf_symbols_map_type & get_var_symbol_map() const
Get the symbols of the global variables exported by the corpora of the current corpus_group.
Definition: abg-corpus.cc:2075
std::unordered_map< string, elf_symbols > string_elf_symbols_map_type
Convenience typedef for a map which key is a string and which value is a vector of elf_symbol...
Definition: abg-ir.h:947
origin
This abstracts where the corpus comes from. That is, either it has been read from the native xml form...
Definition: abg-corpus.h:50
unordered_set< interned_string, hash_interned_string > * get_public_types_pretty_representations()
Getter of a pointer to the set of types reachable from public interfaces of a given corpus group...
Definition: abg-corpus.cc:2257
Abstraction for a function declaration.
Definition: abg-ir.h:3164
virtual bool is_empty() const
Tests if the corpus is empty from an ABI surface perspective. I.e. if all of these criteria are true:...
Definition: abg-corpus.cc:1075
void add_corpus(const corpus_sptr &)
Add a new corpus to the current instance of corpus_group.
Definition: abg-corpus.cc:1914
Types of the main internal representation of libabigail.
vector< string > strings_type
A convenience typedef for std::vector.
Definition: abg-corpus.h:28
void add(const translation_unit_sptr &)
Add a translation unit to the current ABI Corpus.
Definition: abg-corpus.cc:728
The type of the private data of corpus::exported_decls_builder type.
const functions_set & get_undefined_functions() const
Getter of the undefined functions of the corpus.
Definition: abg-corpus.cc:1507
This is a type that aggregates maps of all the kinds of types that are supported by libabigail...
Definition: abg-ir.h:601
const string_elf_symbols_map_type & get_undefined_var_symbol_map() const
Getter for the map of variable symbols that are undefined in this corpus.
Definition: abg-corpus.cc:1202
Abstraction of an elf symbol.
Definition: abg-ir.h:960
This is an abstraction of the set of resources necessary to manage several aspects of the internal re...
Definition: abg-ir.h:147
virtual const string_elf_symbols_map_type & get_fun_symbol_map() const
Get the symbols of the global functions exported by the corpora of the current corpus_group.
Definition: abg-corpus.cc:2092
const elf_symbol_sptr lookup_function_symbol(const string &n) const
Look in the function symbols map for a symbol with a given name.
Definition: abg-corpus.cc:1211
virtual bool is_empty() const
Test if the current corpus group is empty.
Definition: abg-corpus.cc:1990
void drop_translation_units()
Erase the translation units contained in this in-memory object.
Definition: abg-corpus.cc:770
shared_ptr< elf_symbol > elf_symbol_sptr
A convenience typedef for a shared pointer to elf_symbol.
Definition: abg-ir.h:924
exported_decls_builder_sptr get_exported_decls_builder() const
Getter for the object that is responsible for determining what decls ought to be in the set of export...
Definition: abg-corpus.cc:1749
void record_type_as_reachable_from_public_interfaces(const type_base &)
Record a type as being reachable from public interfaces (global functions and variables).
Definition: abg-corpus.cc:819
Abstracts the building of the set of exported variables and functions.
Definition: abg-corpus.h:336
const symtab_reader::symtab_sptr & get_symtab() const
Getter for the symtab object.
Definition: abg-corpus.cc:1128
std::unordered_set< function_decl * > * fn_id_maps_to_several_fns(const function_decl *)
Test if a given function ID maps to several functions in the same corpus.
Definition: abg-corpus.cc:126
string & get_path() const
Get the file path associated to the corpus file.
Definition: abg-corpus.cc:983
const corpus_sptr get_main_corpus() const
Getter of the first corpus added to this Group.
Definition: abg-corpus.cc:1972
corpus::origin operator|(corpus::origin l, corpus::origin r)
Bitwise | operator for the corpus::origin type.
Definition: abg-corpus.cc:1774
vector< string > & get_sym_ids_of_fns_to_keep()
Getter for the vector of function symbol IDs to keep.
Definition: abg-corpus.cc:1655
bool maybe_add_var_to_exported_vars(const var_decl_sptr &)
Consider at all the tunables that control wether a variable should be added to the set of exported va...
Definition: abg-corpus.cc:193
const environment & get_environment() const
Getter of the enviroment of the corpus.
Definition: abg-corpus.cc:703
corpus::origin operator|=(corpus::origin &l, corpus::origin r)
Bitwise |= operator for the corpus::origin type.
Definition: abg-corpus.cc:1788
vector< string > & get_regex_patterns_of_fns_to_suppress()
Accessor for the regex patterns describing the functions to drop from the public decl table...
Definition: abg-corpus.cc:1598
void set_origin(origin)
Setter for the origin of the corpus.
Definition: abg-corpus.cc:937
virtual const elf_symbols & get_sorted_var_symbols() const
Get a sorted vector of the symbols of the variables exported by the corpora of the current group...
Definition: abg-corpus.cc:2141
The abstraction of an interned string.
vector< string > & get_regex_patterns_of_vars_to_suppress()
Accessor for the regex patterns describing the variables to drop from the public decl table...
Definition: abg-corpus.cc:1616
const functions & get_sorted_undefined_functions() const
Getter of the sorted vector of undefined functions of the corpus.
Definition: abg-corpus.cc:1523
void set_format_major_version_number(const string &)
Setter of the major version number of the abixml serialization format.
Definition: abg-corpus.cc:953
bool type_is_reachable_from_public_interfaces(const type_base &) const
Test if a type is reachable from public interfaces (global functions and variables).
Definition: abg-corpus.cc:837
The abstraction of the version of an ELF symbol.
Definition: abg-ir.h:1231
std::unordered_set< var_decl_sptr > variables_set
Convenience typedef for std::unordered_set.
Definition: abg-corpus.h:40
const corpus_group * get_group() const
Getter of the group this corpus is a member of.
Definition: abg-corpus.cc:894
Abstraction of a group of corpora.
Definition: abg-corpus.h:385
const elf_symbols & get_sorted_undefined_var_symbols() const
Getter for a sorted vector of the variable symbols undefined in this corpus.
Definition: abg-corpus.cc:1185
origin get_origin() const
Getter for the origin of the corpus.
Definition: abg-corpus.cc:930
const variables & exported_variables() const
Getter for the reference to the vector of exported variables. This vector is shared with with the cor...
Definition: abg-corpus.cc:142
virtual const elf_symbols & get_unreferenced_function_symbols() const
Getter of the set of function symbols that are not referenced by any function exported by the current...
Definition: abg-corpus.cc:1576
const string & get_soname()
Getter for the soname property of the corpus.
Definition: abg-corpus.cc:1029
corpus::origin operator&(corpus::origin l, corpus::origin r)
Bitwise & operator for the corpus::origin type.
Definition: abg-corpus.cc:1802
void set_symtab(symtab_reader::symtab_sptr)
Setter for the symtab object.
Definition: abg-corpus.cc:1121
virtual ~corpus_group()
Desctructor of the corpus_group type.
Definition: abg-corpus.cc:1907
const string & get_architecture_name() const
Getter for the architecture name of the corpus.
Definition: abg-corpus.cc:1051
virtual const std::unordered_set< function_decl * > * lookup_functions(const interned_string &id) const
Lookup the function which has a given function ID.
Definition: abg-corpus.cc:1399
virtual const string_elf_symbols_map_type & get_fun_symbol_map() const
Getter for the function symbols map.
Definition: abg-corpus.cc:1135
bool has_corpus(const string &)
Test if a corpus of a given path has been added to the group.
Definition: abg-corpus.cc:1953
virtual const elf_symbols & get_unreferenced_function_symbols() const
Get the set of function symbols not referenced by any debug info, from all the corpora of the current...
Definition: abg-corpus.cc:2180
bool do_log() const
Test if logging was requested.
Definition: abg-corpus.cc:710
std::unordered_set< const function_decl * > functions_set
Convenience typedef for std::unordered_set
Definition: abg-corpus.h:34
virtual const std::unordered_set< var_decl_sptr > * lookup_variables(const interned_string &id) const
Lookup the exported variables which all have a given variable ID.
Definition: abg-corpus.cc:2337
virtual const std::unordered_set< var_decl_sptr > * lookup_variables(const interned_string &id) const
Lookup the exported variables which all have a given variable ID.
Definition: abg-corpus.cc:1419
vector< const function_decl * > functions
Convenience typedef for std::vector
Definition: abg-corpus.h:31
const string_elf_symbols_map_type & get_undefined_fun_symbol_map() const
Getter for the map of function symbols that are undefined in this corpus.
Definition: abg-corpus.cc:1145
shared_ptr< exported_decls_builder > exported_decls_builder_sptr
Convenience typedef for shared_ptr.
Definition: abg-corpus.h:42
virtual bool recording_types_reachable_from_public_interface_supported()
Test if the recording of reachable types (and thus, indirectly, the recording of non-reachable types)...
Definition: abg-corpus.cc:2267