The Git repository of the Libabigail Project
Go to file
Dodji Seketeli 643b02fd6a Support reading namespaces
* include/abg-fwd.h (get_global_scope): Return a const
	global_scope.  Add a new overload that takes a naked pointer as
	parm.
	(insert_decl_into_scope, get_top_most_scope_under): Declare new
	entry points.
	* include/abg-ir.h (class decl_base, class scope_decl): Add
	insert_decl_into_scope as a friend of these classes.
	(scope_decl::{insert_decl_into_scope, find_iterator_for_member}):
	Declare new member.
	(scope_decl::get_member_decls): New non-const overload.
	* src/abg-dwarf-reader.cc (build_translation_unit): Remove the
	"recurse" parameter.  Adjust the call to build_ir_node_from_die to
	read just public decls that are at namespace scope.  Anything else
	should be dropped unless it's needed to emitting the public
	namespace-level decls.
	(build_namespace_decl_and_add_to_ir)
	(canonicalize_and_insert_type_into_ir): Define new static
	functions.
	(build_corpus): Adjust ad build_translation_unit doesn't have the
	"recurse" parameter anymore.
	(canonicalize_and_add_type_to_ir): Make this static.  Fix
	comments.
	(build_ir_node_from_die): Take a new "only_public_decl"
	parameter. For DW_TAG_base_type case, use the new
	canonicalize_and_insert_type_into_ir to insert the type at the
	right place in the global scope making sure it is seen before the
	current scope.  For pointer, references and qualified types, use
	canonicalize_and_insert_type_into_ir to add the type at the same
	scope as its underlying type.  Handle DW_TAG_{namespace,module}
	using the new build_namespace_decl_and_add_to_ir function.  Add
	some vertical spaces and some assertions.
	* src/abg-ir.cc (scope_decl::add_member_decl): Use scope_decl_sptr
	typedef.
	(scope_decl::{insert_member_decl,find_iterator_for_member}):
	Define new methods.
	(insert_decl_into_scope, get_top_most_scope_under): Define new
	functions.
	(get_global_scope): Constify the return type.
	(get_translation_unit): Adjust as get_global_scope now returns a
	const.
	* src/abg-reader.cc (get_translation_unit): Likewise.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2013-12-12 15:40:52 +01:00
doc Initial writing/reading of an ABI corpus to an archive 2013-08-27 16:20:41 +02:00
include Support reading namespaces 2013-12-12 15:40:52 +01:00
m4 Various autotool adjustments 2013-03-27 21:01:54 +01:00
scripts Initial DOT work. 2013-07-23 23:13:55 +02:00
src Support reading namespaces 2013-12-12 15:40:52 +01:00
tests Support the "address-size" attribute for <abi-instr> elements 2013-12-11 12:30:19 +01:00
tools Make bilint read input from stdin 2013-12-11 15:20:42 +01:00
abigail.m4 For usage from within GCC set header path to $includedir/libabigail 2013-08-14 16:10:15 +02:00
AUTHORS Initial AUTHORS and README 2013-02-28 13:25:20 +01:00
ChangeLog Remove ChangeLog 2013-07-23 23:13:54 +02:00
COMMIT-LOG-GUIDELINES Prepare for publishing 2013-07-23 23:13:55 +02:00
COMPILING White space fix in COMPILING 2013-08-22 17:40:50 +02:00
config.guess Add missing autoconfiscation files into version control 2013-03-01 00:47:49 +01:00
config.h.in Initial import Abigail 2013-02-28 11:42:57 +01:00
config.sub Add missing autoconfiscation files into version control 2013-03-01 00:47:49 +01:00
configure.ac Initial support of reading an ABI Corpus from DWARF 2013-12-07 08:07:54 +01:00
CONTRIBUTING Fix typo in CONTRIBUTING file 2013-08-21 11:53:12 +02:00
COPYING Leave license stuff for later 2013-02-28 13:20:19 +01:00
COPYING-LGPLV3 LGPLv3 License the library 2013-07-23 23:13:55 +02:00
depcomp Add missing autoconfiscation files into version control 2013-03-01 00:47:49 +01:00
INSTALL Initial import Abigail 2013-02-28 11:42:57 +01:00
install-sh Add missing autoconfiscation files into version control 2013-03-01 00:47:49 +01:00
libabigail.pc.in Make libxml2 a private dependency wrt pkconfig 2013-08-22 17:41:29 +02:00
ltmain.sh Add missing autoconfiscation files into version control 2013-03-01 00:47:49 +01:00
Makefile.am Initial version of an archive manipulation program: biar 2013-08-29 17:08:47 +02:00
missing Add missing autoconfiscation files into version control 2013-03-01 00:47:49 +01:00
NEWS Initial import Abigail 2013-02-28 11:42:57 +01:00
README Prepare for publishing 2013-07-23 23:13:55 +02:00

This is the Application Binary Interface Generic Analysis and
Instrumentation Library.

It aims at constructing, manipulating, serializing and de-serializing
ABI-relevant artifacts.

The set of artifacts that we are intersted is made of quantities like
types, variable, fonctions and declarations of a given library or
program.  For a given library or program this set of quantities is
called an ABI corpus.

This library aims at (among other things) providing a way to comparing
two ABI Corpuses, provide detailed information about their
differences, and help build tools to infer interesting conclusions
about these differences.

You are welcome to contribute to this project after reading the files
CONTRIBUTING and COMMIT-LOG-GUIDELINES files in the source tree.

Communicating with the maintainers of this project -- including
sending patches to be include to the source code -- happens via email
at libabigail@sourceware.org.