libabigail/include
Giuliano Procida 93fae877d8 Simplify peel_typedef_pointer_or_reference_type
The second argument to this function controls whether CV qualifiers
should be stripped as well as the elements mentioned in the function
name. While it defaults to true, it is now always passed in as false.

The function contains incomplete code for peeling array types. This is
not needed or indeed wanted by its current callers.

This commits removes the peel_qual_type argument and removes the
associated behaviour. It removes the array peeling code.

There are no functional changes apart from no longer performing early
canonicalisation of certain array types.

I looked at the history of this function to see where the behaviours
originated.

bd161caa Make type_has_non_canonicalized_subtype() tighter

The function is added to help make more types, self-referential ones,
candidates for early canonicalisation.

5822798d Bug 18894 - Fix representation of enumerators in abixml format

This undid the previous change but the function remained.

c20c8c79 Fix infinite loop in peel_typedef_pointer_or_reference_type

As it says, fixing the overload that is currently in use.

6e36a438 Late canonicalize all types that reference classes when reading DWARF

This reintroduced the use of the function to control canonicalisation
by the detection of class types. It also added array peeling to the
function, but in a broken fashion as it would only work for certain
combinations of pointers, references or typedefs referring to arrays.

e9bdb488 Bug 19025 - abixml writer forgets to emit some member types

This added a use of the function in a map key comparison function.

8cc382c8 Fix emitting of referenced type in abixml writer

This undid the previous change.

1bee40c0 Do not forget to peel qualified type off when peeling types

This made the function remove CV qualifiers unconditionally.

e73901a5 Do not mark "distinct" diff nodes as being redundant

This made behaviour to remove CV qualifiers optional and newly added
is_mostly_distinct_diff disabled it.

5d6af8d5 Delay canonicalization for array and qualified types

This change switches maybe_canonicalize_type to not request CV
qualifer peeling from peel_typedef_pointer_or_reference_type.

It partially resolves the array type issue as they are separately
checked for. Presumably they shouldn't be peeled, but still are under
some circumstances.

The tests here could be subject to further refinement. Many types have
delayed canonicalisation already.

9cf76b11 abg-ir.cc: Improve types_have_similar_structure.

This change replaced the use of the function with a more delicate
matched peeling process for pointer and reference types plus
peel_qualified_or_typedef_type. It obsoleted the behaviour where CV
qualifiers were stripped.

	* include/abg-fwd.h (peel_qualified_or_typedef_type): Remove
	second argument in declarations of both overloads.
	* src/abg-comp-filter.cc (is_mostly_distinct_diff): Remove
	second argument to peel_qualified_or_typedef_type.
	* src/abg-dwarf-reader.cc (maybe_canonicalize_type): Likewise.
	* src/abg-ir.cc (peel_qualified_or_typedef_type): In both
	overloads, remove second argument peel_qual_type, simplify
	code with the assumption it was always false and remove
	incomplete array type peeling logic. In type_base_sptr
	overload, remove stray space.

Signed-off-by: Giuliano Procida <gprocida@google.com>
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2020-07-27 15:26:27 +02:00
..
abg-comp-filter.h Support incomplete enums in core and diff code. 2020-07-08 16:59:56 +02:00
abg-comparison.h Remove unused is_reference_or_pointer_diff. 2020-07-27 15:26:04 +02:00
abg-config.h Update copyright year to 2020 2020-02-21 17:05:01 +01:00
abg-corpus.h Update copyright year to 2020 2020-02-21 17:05:01 +01:00
abg-cxx-compat.h Update copyright year to 2020 2020-02-21 17:05:01 +01:00
abg-diff-utils.h Eliminate non-ASCII characters. 2020-06-15 10:56:44 +02:00
abg-dwarf-reader.h Add --drop-undefined-syms to abidw. 2020-04-15 14:29:55 +02:00
abg-fwd.h Simplify peel_typedef_pointer_or_reference_type 2020-07-27 15:26:27 +02:00
abg-hash.h abg-writer: Add support for stable hash type ids. 2020-06-16 10:13:01 +02:00
abg-ini.h Update copyright year to 2020 2020-02-21 17:05:01 +01:00
abg-interned-str.h Update copyright year to 2020 2020-02-21 17:05:01 +01:00
abg-ir.h Support incomplete enums in core and diff code. 2020-07-08 16:59:56 +02:00
abg-libxml-utils.h Fix compilation with g++ 4.8.5 on el7 2020-05-04 13:07:24 +02:00
abg-libzip-utils.h Update copyright year to 2020 2020-02-21 17:05:01 +01:00
abg-reader.h Update copyright year to 2020 2020-02-21 17:05:01 +01:00
abg-regex.h Add POSIX regex wrapper functions. 2020-05-11 18:30:44 +02:00
abg-reporter.h Fix corpus_diff::has_net_changes for --leaf-changes-only mode 2020-07-21 08:53:19 +02:00
abg-sptr-utils.h Move libxml bits out of abg-sptr-utils.h. 2020-05-04 11:17:30 +02:00
abg-suppression.h Make set_drops_artifact_from_ir non-const. 2020-05-11 14:36:55 +02:00
abg-tools-utils.h Add --header-file option to add individual public header files. 2020-04-14 17:17:28 +02:00
abg-traverse.h Update copyright year to 2020 2020-02-21 17:05:01 +01:00
abg-version.h.in Add (undocumented) support for version suffixes 2020-01-09 17:06:31 +00:00
abg-viz-common.h Update copyright year to 2020 2020-02-21 17:05:01 +01:00
abg-viz-dot.h Update copyright year to 2020 2020-02-21 17:05:01 +01:00
abg-viz-svg.h Update copyright year to 2020 2020-02-21 17:05:01 +01:00
abg-workers.h Update copyright year to 2020 2020-02-21 17:05:01 +01:00
abg-writer.h abg-writer: Add support for stable hash type ids. 2020-06-16 10:13:01 +02:00
Makefile.am Move regex definitions to own files. 2020-05-04 11:15:23 +02:00