libabigail/include
Dodji Seketeli cbf1debeab Fix reading several clones of the same member function from DWARF
* include/abg-fwd.h (set_member_function_is_ctor)
	(set_member_function_is_dtor, set_member_function_is_const)
	(set_member_function_vtable_offset): Declare new functions.
	* include/abg-ir.h (class_decl::sort_virtual_mem_fns): Declare new
	member function.
	(mem_fn_context_rel::{vtable_offset, is_constructor is_destructor,
	is_const}): Add these setters.
	(set_member_function_is_ctor, set_member_function_is_dtor)
	(set_member_function_is_static, set_member_function_is_const)
	(set_member_function_vtable_offset)
	(set_member_function_is_virtual): Declare these new friend
	function to class class_decl::method_decl.
	* src/abg-dwarf-reader.cc (finish_member_function_reading): Split
	this out from build_class_type_and_add_to_ir.  Use the new setters
	for member functions properties introduced above.
	(build_class_type_and_add_to_ir): Factorize the creation of member
	function by using build_ir_node_from_die.  Once that function has
	created the member function in a rather generic way, use the new
	finish_member_function_reading to set the remaining specific
	properties for member functions.
	(build_function_decl): When called to read additional properties
	of a function_decl, allow this to read and update the elf symbol
	properties too.  This is useful for building a clone of a function
	that already has an elf symbol.
	(build_ir_node_from_die):  When building a function decl, consider
	the case of a DIE that has both DW_AT_specification and
	DW_AT_abstract_origin set.  That is, DW_AT_abstract_origin is set,
	and the origin has DW_AT_specification set.  This is basically a
	clone of a function that implements an interface (this happens for
	destructors, for instance).  In this case, really do the cloning
	of the interface implementation.  If the cloned function happens
	to be member function, use finish_member_function_reading to read
	the properties relevant to its method-ness.
	* src/abg-ir.cc (set_member_function_is_ctor)
	(set_member_function_is_dtor, set_member_function_is_const)
	(set_member_function_vtable_offset)
	(class_decl::sort_virtual_mem_fns): Define new functions.
	(sort_virtual_member_functions): Define new static function.
	(struct virtual_member_function_less_than): New functor.
	(class_decl::add_member_function): Keep virtual member functions
	vector sorted.
	* data/test-read-dwarf/test1.abi: Adjust.  Now, both the
	cdtor specification and all the clones that implements the
	different are emitted.
	* data/test-read-dwarf/test2.so.abi: Likewise.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2014-10-02 10:09:23 +02:00
..
abg-comp-filter.h A builtin type name change is not harmless - fix that 2014-08-22 17:19:27 +02:00
abg-comparison.h Pimplify abigail::comparison::diff type 2014-09-19 12:28:18 +02:00
abg-config.h Doxygen markup fixes final. 2013-08-14 15:07:18 +02:00
abg-corpus.h Take symbol versions in account when computing added/removed decls 2014-08-25 23:16:50 +02:00
abg-diff-utils.h Add missing headers double inclusion guards 2014-03-27 13:01:18 +01:00
abg-dwarf-reader.h Support alternate debug info sections 2014-08-15 18:27:04 +02:00
abg-fwd.h Fix reading several clones of the same member function from DWARF 2014-10-02 10:09:23 +02:00
abg-hash.h Misc style fixes 2014-02-10 15:51:10 +01:00
abg-ir.h Fix reading several clones of the same member function from DWARF 2014-10-02 10:09:23 +02:00
abg-libxml-utils.h Serialize and de-serialize elf symbols for var & function decls 2014-05-14 11:19:34 +02:00
abg-libzip-utils.h Initial writing/reading of an ABI corpus to an archive 2013-08-27 16:20:41 +02:00
abg-reader.h Add a symbol database to the ABI Corpus & support symbol aliases 2014-05-28 16:33:35 +02:00
abg-sptr-utils.h Factorize a no-op deleter for shared pointer 2014-09-30 18:04:14 +02:00
abg-traverse.h Make tree walking preemptive 2014-03-27 13:01:17 +01:00
abg-version.h.in Collapse subdir of include to include. 2013-08-14 15:07:18 +02:00
abg-viz-common.h Forward decls for abg-ir.h, doxygen fixups, restyle. 2013-08-14 15:07:18 +02:00
abg-viz-dot.h Forward decls for abg-ir.h, doxygen fixups, restyle. 2013-08-14 15:07:18 +02:00
abg-viz-svg.h Forward decls for abg-ir.h, doxygen fixups, restyle. 2013-08-14 15:07:18 +02:00
abg-writer.h Misc Doxygen API doc fixes 2014-01-17 15:44:25 +01:00
Makefile.am Replace indirect variable assignments 2014-09-12 11:04:54 +02:00