@@ -65,8 +65,16 @@ AM_SILENT_RULES([yes])
VERSION_MAJOR=version_major
VERSION_MINOR=version_minor
VERSION_REVISION=0
+dnl The major version number of the abixml version should be changed
+dnl only if a new version of libabigail cannot read an old version of
+dnl abixml. This should be very rare and should be avoided as much as
+dnl possible.
ABIXML_VERSION_MAJOR=2
-ABIXML_VERSION_MINOR=1
+dnl The minor version number of the abixml version should be changed
+dnl each time and old version of libabigail can't handle a new version
+dnl of abixml. Note however that when the major version number is
+dnl changed, the minor version number should be set to zero.
+ABIXML_VERSION_MINOR=2
LIBABIGAIL_SO_CURRENT=libabigail_so_current
LIBABIGAIL_SO_REVISION=libabigail_so_revision
LIBABIGAIL_SO_AGE=libabigail_so_age
@@ -548,6 +548,12 @@ public:
string_diff_ptr_map&
get_typedef_diff_map();
+ const string_diff_ptr_map&
+ get_subrange_diff_map() const;
+
+ string_diff_ptr_map&
+ get_subrange_diff_map();
+
const string_diff_ptr_map&
get_array_diff_map() const;
@@ -1409,6 +1415,61 @@ compute_diff(reference_type_def_sptr first,
reference_type_def_sptr second,
diff_context_sptr ctxt);
+
+class subrange_diff;
+
+/// A convenience typedef for a shared pointer to subrange_diff type.
+typedef shared_ptr<subrange_diff> subrange_diff_sptr;
+
+/// The abstraction of the diff between two subrange types.
+class subrange_diff : public type_diff_base
+{
+ struct priv;
+ std::unique_ptr<priv> priv_;
+
+protected:
+ subrange_diff(const array_type_def::subrange_sptr& first,
+ const array_type_def::subrange_sptr& second,
+ const diff_sptr& underlying_type_diff,
+ const diff_context_sptr ctxt = diff_context_sptr());
+
+public:
+ const array_type_def::subrange_sptr
+ first_subrange() const;
+
+ const array_type_def::subrange_sptr
+ second_subrange() const;
+
+ const diff_sptr
+ underlying_type_diff() const;
+
+ virtual const string&
+ get_pretty_representation() const;
+
+ virtual bool
+ has_changes() const;
+
+ virtual enum change_kind
+ has_local_changes() const;
+
+ virtual void
+ report(ostream&, const string& indent = "") const;
+
+ virtual void
+ chain_into_hierarchy();
+
+ friend subrange_diff_sptr
+ compute_diff(array_type_def::subrange_sptr first,
+ array_type_def::subrange_sptr second,
+ diff_context_sptr ctxt);
+}; // end subrange_diff
+
+subrange_diff_sptr
+compute_diff(array_type_def::subrange_sptr first,
+ array_type_def::subrange_sptr second,
+ diff_context_sptr ctxt);
+
+
class array_diff;
/// Convenience typedef for a shared pointer on a @ref
@@ -2855,6 +2916,9 @@ is_class_or_union_diff(const diff* d);
const class_or_union_diff*
is_anonymous_class_or_union_diff(const diff* d);
+const subrange_diff*
+is_subrange_diff(const diff* diff);
+
const array_diff*
is_array_diff(const diff* diff);
@@ -2652,6 +2652,11 @@ is_subrange_type(const type_or_decl_base *type);
array_type_def::subrange_sptr
is_subrange_type(const type_or_decl_base_sptr &type);
+bool
+equals(const array_type_def::subrange_type&,
+ const array_type_def::subrange_type&,
+ change_kind*);
+
bool
equals(const enum_type_decl&, const enum_type_decl&, change_kind*);
@@ -32,6 +32,7 @@ class qualified_type_diff;
class distinct_diff;
class pointer_diff;
class reference_diff;
+class subrange_diff;
class array_diff;
class base_diff;
class class_or_union_diff;
@@ -92,6 +93,10 @@ public:
report(const array_diff& d, std::ostream& out,
const std::string& indent = "") const = 0;
+ virtual void
+ report(const subrange_diff& d, std::ostream& out,
+ const std::string& indent = "") const = 0;
+
virtual void
report(const base_diff& d, std::ostream& out,
const std::string& indent = "") const = 0;
@@ -173,6 +178,11 @@ public:
std::ostream& out,
const std::string& indent) const;
+ void
+ report_underlying_changes_of_qualified_type (const qualified_type_diff& d,
+ ostream& out,
+ const string& indent) const;
+
virtual void
report(const qualified_type_diff& d, std::ostream& out,
const std::string& indent = "") const;
@@ -203,6 +213,10 @@ public:
report(const function_type_diff& d, std::ostream& out,
const std::string& indent = "") const;
+ virtual void
+ report(const subrange_diff& d, std::ostream& out,
+ const std::string& indent = "") const;
+
virtual void
report(const array_diff& d, std::ostream& out,
const std::string& indent = "") const;
@@ -285,6 +299,10 @@ public:
report(const function_type_diff& d, std::ostream& out,
const std::string& indent = "") const;
+ virtual void
+ report(const subrange_diff& d, std::ostream& out,
+ const std::string& indent = "") const;
+
virtual void
report(const array_diff& d, std::ostream& out,
const std::string& indent = "") const;
@@ -34,6 +34,7 @@ const char* get_system_libdir();
const char* get_anonymous_struct_internal_name_prefix();
const char* get_anonymous_union_internal_name_prefix();
const char* get_anonymous_enum_internal_name_prefix();
+const char* get_anonymous_subrange_internal_name_prefix();
bool file_exists(const string&);
bool is_regular_file(const string&);
@@ -414,6 +414,17 @@ struct pointer_diff::priv
{}
};//end struct pointer_diff::priv
+/// The internal type for the impl idiom implementation of @ref
+/// subrange_diff.
+struct subrange_diff::priv
+{
+ diff_sptr underlying_type_diff_;
+
+ priv(diff_sptr u)
+ : underlying_type_diff_(u)
+ {}
+}; // end struct subrange_diff::priv
+
struct array_diff::priv
{
/// The diff between the two array element types.
@@ -694,6 +694,16 @@ const typedef_diff*
is_typedef_diff(const diff *diff)
{return dynamic_cast<const typedef_diff*>(diff);}
+/// Test if a diff node is a @ref subrange_diff node.
+///
+/// @param diff the diff node to consider.
+///
+/// @return a non-nil pointer to a @ref subrange_diff iff @p diff is a
+/// @ref subrange_diff node.
+const subrange_diff*
+is_subrange_diff(const diff* diff)
+{return dynamic_cast<const subrange_diff*>(diff);}
+
/// Test if a diff node is a @ref array_diff node.
///
/// @param diff the diff node to consider.
@@ -3033,6 +3043,7 @@ compute_diff_for_types(const type_or_decl_base_sptr& first,
||(d = try_to_diff<class_decl>(f, s,ctxt))
||(d = try_to_diff<pointer_type_def>(f, s, ctxt))
||(d = try_to_diff<reference_type_def>(f, s, ctxt))
+ ||(d = try_to_diff<array_type_def::subrange_type>(f, s, ctxt))
||(d = try_to_diff<array_type_def>(f, s, ctxt))
||(d = try_to_diff<qualified_type_def>(f, s, ctxt))
||(d = try_to_diff<typedef_decl>(f, s, ctxt))
@@ -3714,6 +3725,143 @@ compute_diff(pointer_type_def_sptr first,
// </pointer_type_def>
+// <subrange_diff >
+
+/// Constructor of the @ref subrange_diff diff node type.
+///
+/// @param first the first subrange type to consider for the diff.
+///
+/// @param second the second subrange type to consider for the diff.
+///
+/// @param underlying_type_diff the underlying type diff between @p
+/// first and @p second.
+///
+/// @param ctxt the diff context to use.
+subrange_diff::subrange_diff
+(const array_type_def::subrange_sptr& first,
+ const array_type_def::subrange_sptr& second,
+ const diff_sptr& underlying_type_diff,
+ const diff_context_sptr ctxt)
+ : type_diff_base(first, second, ctxt),
+ priv_(new priv(underlying_type_diff))
+{}
+
+
+/// Getter of the first subrange of the current instance @ref
+/// subrange_diff.
+///
+/// @return The first subrange of the current instance @ref subrange_diff.
+const array_type_def::subrange_sptr
+subrange_diff::first_subrange() const
+{return is_subrange_type(first_subject());}
+
+/// Getter of the second subrange of the current instance @ref
+/// subrange_diff.
+///
+/// @return The second subrange of the current instance @ref
+/// subrange_diff.
+const array_type_def::subrange_sptr
+subrange_diff::second_subrange() const
+{return is_subrange_type(second_subject());}
+
+/// Getter of the diff node of the underlying types of the current
+/// @ref subrange_diff diff node.
+///
+/// @return The diff node of the underlying types of the current @ref
+/// subrange_diff diff node.
+const diff_sptr
+subrange_diff::underlying_type_diff() const
+{return priv_->underlying_type_diff_;}
+
+/// Getter the pretty representation of the @ref subrange_diff diff
+/// node.
+///
+/// @return The pretty representation of the @ref subrange_diff diff node.
+const string&
+subrange_diff::get_pretty_representation() const
+{
+ if (diff::priv_->pretty_representation_.empty())
+ {
+ std::ostringstream o;
+ o << "subrange_diff["
+ << first_subject()->get_pretty_representation()
+ << ","
+ << second_subject()->get_pretty_representation()
+ << "]";
+ diff::priv_->pretty_representation_ = o.str();
+ }
+ return diff::priv_->pretty_representation_;
+}
+
+/// Test if the current @ref subrange_diff node carries any change.
+///
+/// @return true iff the current @ref subrange_diff node carries any
+/// change.
+bool
+subrange_diff::has_changes() const
+{return *first_subrange() != *second_subrange();}
+
+/// Test if the current @ref subrange_diff node carries any local
+/// change.
+///
+/// @return true iff the current @ref subrange_diff node carries any
+/// local change.
+enum change_kind
+subrange_diff::has_local_changes() const
+{
+ ir::change_kind k = ir::NO_CHANGE_KIND;
+ if (!equals(*first_subrange(), *second_subrange(), &k))
+ return k & ir::ALL_LOCAL_CHANGES_MASK;
+ return ir::NO_CHANGE_KIND;
+}
+
+/// Report about the changes carried by this node.
+///
+/// @param out the output stream to send the report to.
+///
+/// @param indent the indentation string to use.
+void
+subrange_diff::report(ostream& out, const string& indent) const
+{context()->get_reporter()->report(*this, out, indent);}
+
+/// Populate the vector of children node of the @ref diff base type
+/// sub-object of this instance of @ref subrange_diff.
+///
+/// The children node can then later be retrieved using
+/// diff::children_node().
+void
+subrange_diff::chain_into_hierarchy()
+{append_child_node(underlying_type_diff());}
+
+/// Compute the diff between two instances of @ref subrange_diff.
+///
+/// Note that the two decls must have been created in the same @ref
+/// environment, otherwise, this function aborts.
+///
+/// @param first the first @ref subrange_diff to consider for the diff.
+///
+/// @param second the second @ref subrange_diff to consider for the diff.
+///
+/// @param ctxt the diff context to use.
+///
+/// @return the resulting diff between the two @ref subrange_diff.
+subrange_diff_sptr
+compute_diff(array_type_def::subrange_sptr first,
+ array_type_def::subrange_sptr second,
+ diff_context_sptr ctxt)
+{
+ diff_sptr d = compute_diff_for_types(first->get_underlying_type(),
+ second->get_underlying_type(),
+ ctxt);
+
+ subrange_diff_sptr result(new subrange_diff(first, second, d, ctxt));
+ ctxt->initialize_canonical_diff(result);
+ return result;
+}
+
+//</subrange_diff >
+
+
// <array_type_def>
/// Populate the vector of children node of the @ref diff base type
@@ -7793,6 +7941,7 @@ struct diff_maps::priv
string_diff_ptr_map class_diff_map_;
string_diff_ptr_map union_diff_map_;
string_diff_ptr_map typedef_diff_map_;
+ string_diff_ptr_map subrange_diff_map_;
string_diff_ptr_map array_diff_map_;
string_diff_ptr_map reference_diff_map_;
string_diff_ptr_map function_type_diff_map_;
@@ -7880,6 +8029,20 @@ string_diff_ptr_map&
diff_maps::get_typedef_diff_map()
{return priv_->typedef_diff_map_;}
+/// Getter of the map that contains subrange type diffs.
+///
+/// @return the map that contains subrange type diffs.
+const string_diff_ptr_map&
+diff_maps::get_subrange_diff_map() const
+{return priv_->subrange_diff_map_;}
+
+/// Getter of the map that contains subrange type diffs.
+///
+/// @return the map that contains subrange type diffs.
+string_diff_ptr_map&
+diff_maps::get_subrange_diff_map()
+{return priv_->subrange_diff_map_;}
+
/// Getter of the map that contains array type diffs.
///
/// @return the map that contains array type diffs.
@@ -8007,6 +8170,8 @@ diff_maps::insert_diff_node(const diff *dif,
get_union_diff_map()[n] = const_cast<union_diff*>(d);
else if (const typedef_diff *d = is_typedef_diff(dif))
get_typedef_diff_map()[n] = const_cast<typedef_diff*>(d);
+ else if (const subrange_diff *d = is_subrange_diff(dif))
+ get_subrange_diff_map()[n] = const_cast<subrange_diff*>(d);
else if (const array_diff *d = is_array_diff(dif))
get_array_diff_map()[n] = const_cast<array_diff*>(d);
else if (const reference_diff *d = is_reference_diff(dif))
@@ -9899,6 +10064,8 @@ corpus_diff::priv::count_leaf_type_changes(size_t &num_changes,
num_changes, num_filtered);
do_count_diff_map_changes(leaf_diffs_.get_typedef_diff_map(),
num_changes, num_filtered);
+ do_count_diff_map_changes(leaf_diffs_.get_subrange_diff_map(),
+ num_changes, num_filtered);
do_count_diff_map_changes(leaf_diffs_.get_array_diff_map(),
num_changes, num_filtered);
do_count_diff_map_changes(leaf_diffs_.get_distinct_diff_map(),
@@ -652,6 +652,28 @@ default_reporter::report(const function_type_diff& d, ostream& out,
report_local_function_type_changes(d, out, indent);
}
+/// Report about the change carried by a @ref subrange_diff diff node
+/// in a serialized form.
+///
+/// @param d the diff node to consider.
+///
+/// @param out the output stream to report to.
+///
+/// @param indent the indentation string to use in the report.
+void
+default_reporter::report(const subrange_diff& d, std::ostream& out,
+ const std::string& indent) const
+{
+ if (!diff_to_be_reported(&d))
+ return;
+
+ RETURN_IF_BEING_REPORTED_OR_WAS_REPORTED_EARLIER3(d.first_subrange(),
+ d.second_subrange(),
+ "range type");
+
+ represent(d, d.context(), out,indent, /*local_only=*/false);
+}
+
/// Report a @ref array_diff in a serialized form.
///
/// @param d the @ref array_diff to consider.
@@ -8641,7 +8641,9 @@ get_type_name(const type_base_sptr& t, bool qualified, bool internal)
static bool
has_generic_anonymous_internal_type_name(const decl_base *d)
{
- return is_class_or_union_type(d) || is_enum_type(d);
+ return (is_class_or_union_type(d)
+ || is_enum_type(d)
+ || is_subrange_type(d));
}
/// Return the generic internal name of an anonymous type.
@@ -8671,6 +8673,9 @@ get_generic_anonymous_internal_type_name(const decl_base *d)
else if (is_enum_type(d))
result =
env.intern(tools_utils::get_anonymous_enum_internal_name_prefix());
+ else if (is_subrange_type(d))
+ result =
+ env.intern(tools_utils::get_anonymous_subrange_internal_name_prefix());
else
ABG_ASSERT_NOT_REACHED;
@@ -140,6 +140,9 @@ report_type_changes_from_diff_maps(const leaf_reporter& reporter,
// typedefs
report_diffs(reporter, maps.get_typedef_diff_map(), out, indent);
+ // subranges
+ report_diffs(reporter, maps.get_subrange_diff_map(), out, indent);
+
// arrays
report_diffs(reporter, maps.get_array_diff_map(), out, indent);
@@ -430,6 +433,30 @@ leaf_reporter::report(const scope_diff& d,
out << "\n";
}
+/// Report about the change carried by a @ref subrange_diff diff node
+/// in a serialized form.
+///
+/// @param d the diff node to consider.
+///
+/// @param out the output stream to report to.
+///
+/// @param indent the indentation string to use in the report.
+void
+leaf_reporter::report(const subrange_diff& d, std::ostream& out,
+ const std::string& indent) const
+{
+ if (!diff_to_be_reported(&d))
+ return;
+
+ RETURN_IF_BEING_REPORTED_OR_WAS_REPORTED_EARLIER3(d.first_subrange(),
+ d.second_subrange(),
+ "range type");
+
+ represent(d, d.context(), out,indent, /*local_only=*/true);
+
+ maybe_report_interfaces_impacted_by_diff(&d, out, indent);
+}
+
/// Report the changes carried by a @ref array_diff node.
///
/// @param out the output stream to report to.
@@ -1377,7 +1377,7 @@ static shared_ptr<function_type>
build_function_type(reader&, const xmlNodePtr, bool);
static array_type_def::subrange_sptr
-build_subrange_type(reader&, const xmlNodePtr);
+build_subrange_type(reader&, const xmlNodePtr, bool);
static array_type_def_sptr
build_array_type_def(reader&, const xmlNodePtr, bool);
@@ -4109,8 +4109,9 @@ build_function_type(reader& rdr,
/// @return a pointer to a newly built array_type_def::subrange_type
/// upon successful completion, a null pointer otherwise.
static array_type_def::subrange_sptr
-build_subrange_type(reader& rdr,
- const xmlNodePtr node)
+build_subrange_type(reader& rdr,
+ const xmlNodePtr node,
+ bool add_to_current_scope)
{
array_type_def::subrange_sptr nil;
@@ -4209,6 +4210,9 @@ build_subrange_type(reader& rdr,
maybe_set_artificial_location(rdr, node, p);
p->is_infinite(is_infinite);
+ if (rdr.push_and_key_type_decl(p, id, add_to_current_scope))
+ rdr.map_xml_node_to_decl(node, p);
+
return p;
}
@@ -4307,7 +4311,7 @@ build_array_type_def(reader& rdr,
if (xmlStrEqual(n->name, BAD_CAST("subrange")))
{
if (array_type_def::subrange_sptr s =
- build_subrange_type(rdr, n))
+ build_subrange_type(rdr, n, /*add_to_current_scope=*/true))
{
MAYBE_MAP_TYPE_WITH_TYPE_ID(s, n);
if (add_to_current_scope)
@@ -5818,6 +5822,7 @@ build_type(reader& rdr,
|| (t = build_reference_type_def(rdr, node , add_to_current_scope))
|| (t = build_function_type(rdr, node, add_to_current_scope))
|| (t = build_array_type_def(rdr, node, add_to_current_scope))
+ || (t = build_subrange_type(rdr, node, add_to_current_scope))
|| (t = build_enum_type_decl_if_not_suppressed(rdr, node,
add_to_current_scope))
|| (t = build_typedef_decl(rdr, node, add_to_current_scope))
@@ -712,6 +712,77 @@ represent(const var_diff_sptr &diff,
out << "\n";
}
+/// Represent the changes carried by an instance of @ref subrange_diff
+/// that represent a difference between two ranges.
+///
+/// @param diff diff the diff node to represent.
+///
+/// @param ctxt the diff context to use.
+///
+/// @param local_only if true, only display local changes.
+///
+/// @param out the output stream to send the representation to.
+///
+/// @param indent the indentation string to use for the change report.
+void
+represent(const subrange_diff& d,
+ const diff_context_sptr ctxt,
+ ostream& out,
+ const string& indent,
+ bool local_only)
+{
+ array_type_def::subrange_sptr o = d.first_subrange();
+ array_type_def::subrange_sptr n = d.second_subrange();
+ string oor = o->get_pretty_representation();
+ string nr = n->get_pretty_representation();
+ string on = o->get_name();
+ string nn = n->get_name();
+ int64_t olb = o->get_lower_bound();
+ int64_t nlb = n->get_lower_bound();
+ int64_t oub = o->get_upper_bound();
+ int64_t nub = n->get_upper_bound();
+
+ if (on != nn)
+ {
+ out << indent << "name of range changed from '"
+ << on << "' to '" << nn << "'\n";
+ }
+
+ if (olb != nlb)
+ {
+ out << indent << "lower bound of range '"
+ << on
+ << "' change from '";
+ emit_num_value(olb, *ctxt, out);
+ out << "' to '";
+ emit_num_value(nlb, *ctxt, out);
+ out << "'\n";
+ }
+
+ if (oub != nub)
+ {
+ out << indent << "upper bound of range '"
+ << on
+ << "' change from '";
+ emit_num_value(oub, *ctxt, out);
+ out << "' to '";
+ emit_num_value(nub, *ctxt, out);
+ out << "'\n";
+ }
+
+ if (!local_only)
+ {
+ diff_sptr dif = d.underlying_type_diff();
+ if (dif && dif->to_be_reported())
+ {
+ // report range underlying type changes
+ out << indent << "underlying type of range '"
+ << oor << "' changed:\n";
+ dif->report(out, indent + " ");
+ }
+ }
+}
+
/// Report the size and alignment changes of a type.
///
/// @param first the first type to consider.
@@ -156,6 +156,13 @@ represent(const var_diff_sptr &diff,
const string& indent = "",
bool local_only = false);
+void
+represent(const subrange_diff& diff,
+ const diff_context_sptr ctxt,
+ ostream& out,
+ const string& indent = "",
+ bool local_only = false);
+
void
report_size_and_alignment_changes(type_or_decl_base_sptr first,
type_or_decl_base_sptr second,
@@ -559,9 +559,10 @@ is_dir(const string& path)
return false;
}
-static const char* ANONYMOUS_STRUCT_INTERNAL_NAME = "__anonymous_struct__";
-static const char* ANONYMOUS_UNION_INTERNAL_NAME = "__anonymous_union__";
-static const char* ANONYMOUS_ENUM_INTERNAL_NAME = "__anonymous_enum__";
+static const char* ANONYMOUS_STRUCT_INTERNAL_NAME = "__anonymous_struct__";
+static const char* ANONYMOUS_UNION_INTERNAL_NAME = "__anonymous_union__";
+static const char* ANONYMOUS_ENUM_INTERNAL_NAME = "__anonymous_enum__";
+static const char* ANONYMOUS_SUBRANGE_INTERNAL_NAME = "__anonymous_range__";
static int ANONYMOUS_STRUCT_INTERNAL_NAME_LEN =
strlen(ANONYMOUS_STRUCT_INTERNAL_NAME);
@@ -586,6 +587,9 @@ const char*
get_anonymous_union_internal_name_prefix()
{return ANONYMOUS_UNION_INTERNAL_NAME;}
+static int ANONYMOUS_SUBRANGE_INTERNAL_NAME_LEN =
+ strlen(ANONYMOUS_SUBRANGE_INTERNAL_NAME);
+
/// Getter of the prefix for the name of anonymous enums.
///
/// @reaturn the prefix for the name of anonymous enums.
@@ -593,6 +597,13 @@ const char*
get_anonymous_enum_internal_name_prefix()
{return ANONYMOUS_ENUM_INTERNAL_NAME;}
+/// Getter of the prefix for the name of anonymous range.
+///
+/// @reaturn the prefix for the name of anonymous range.
+const char*
+get_anonymous_subrange_internal_name_prefix()
+{return ANONYMOUS_SUBRANGE_INTERNAL_NAME;}
+
/// Compare two fully qualified decl names by taking into account that
/// they might have compontents that are anonymous types/namespace names.
///
@@ -921,6 +921,9 @@ static bool write_reference_type_def(const reference_type_def_sptr&,
write_context&, unsigned);
static bool write_array_type_def(const array_type_def_sptr&,
write_context&, unsigned);
+static bool write_array_subrange_type(const array_type_def::subrange_sptr&,
+ write_context&,
+ unsigned);
static bool write_enum_type_decl(const enum_type_decl_sptr&,
write_context&, unsigned);
static bool write_typedef_decl(const typedef_decl_sptr&,
@@ -1969,6 +1972,9 @@ write_decl(const decl_base_sptr& decl, write_context& ctxt, unsigned indent)
<reference_type_def>(decl), ctxt, indent)
|| write_array_type_def(dynamic_pointer_cast
<array_type_def>(decl), ctxt, indent)
+ || write_array_subrange_type(dynamic_pointer_cast
+ <array_type_def::subrange_type>(decl),
+ ctxt, indent)
|| write_enum_type_decl(dynamic_pointer_cast<enum_type_decl>(decl),
ctxt, indent)
|| write_typedef_decl(dynamic_pointer_cast<typedef_decl>(decl),
@@ -298,6 +298,14 @@ test-abidiff-exit/test-allow-type-region-v5.c \
test-abidiff-exit/test-allow-type-region-v5.o \
test-abidiff-exit/test-allow-type-suppr2.txt \
test-abidiff-exit/test-allow-type-suppr1.txt \
+test-abidiff-exit/ada-subrange/test1-ada-subrange/test1-ada-subrange-report-1.txt \
+test-abidiff-exit/ada-subrange/test1-ada-subrange/test1-ada-subrange-report-2.txt \
+test-abidiff-exit/ada-subrange/test1-ada-subrange/v0/test1.adb \
+test-abidiff-exit/ada-subrange/test1-ada-subrange/v0/test1.ads \
+test-abidiff-exit/ada-subrange/test1-ada-subrange/v0/test1.o \
+test-abidiff-exit/ada-subrange/test1-ada-subrange/v1/test1.adb \
+test-abidiff-exit/ada-subrange/test1-ada-subrange/v1/test1.ads \
+test-abidiff-exit/ada-subrange/test1-ada-subrange/v1/test1.o \
\
test-diff-dwarf/test0-v0.cc \
test-diff-dwarf/test0-v0.o \
new file mode 100644
@@ -0,0 +1,15 @@
+Functions changes summary: 0 Removed, 2 Changed, 0 Added functions
+Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
+
+2 functions with some indirect sub-type change:
+
+ [C] 'function test1__my_int[6] test1__first_function()' at test1.adb:6:1 has some indirect sub-type changes:
+ return type changed:
+ type name changed from 'test1__my_int[6]' to 'test1__my_int[7]'
+ array type size changed from 6000 to 7000
+ array type subrange 1 changed length from 6 to 7
+
+ [C] 'function test1__my_index test1__second_function()' at test1.adb:14:1 has some indirect sub-type changes:
+ return type changed:
+ upper bound of range 'test1__my_index' change from '5' to '6'
+
new file mode 100644
@@ -0,0 +1,19 @@
+Leaf changes summary: 3 artifacts changed
+Changed leaf types summary: 1 leaf type changed
+Removed/Changed/Added functions summary: 0 Removed, 2 Changed, 0 Added function
+Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
+
+2 functions with some sub-type change:
+
+ [C] 'function test1__my_int[6] test1__first_function()' at test1.adb:6:1 has some sub-type changes:
+ return type changed:
+ type name changed from 'test1__my_int[6]' to 'test1__my_int[7]'
+ array type size changed from 6000 to 7000
+ array type subrange 1 changed length from 6 to 7
+
+ [C] 'function test1__my_index test1__second_function()' at test1.adb:14:1 has some sub-type changes:
+ return type changed:
+ upper bound of range 'test1__my_index' change from '5' to '6'
+
+'<range test1__my_index>[6]' changed:
+ upper bound of range 'test1__my_index' change from '5' to '6'
new file mode 100644
@@ -0,0 +1,19 @@
+-- Compile this file with:
+-- gcc -g -c test1.adb
+
+package body Test1 is
+
+function First_Function return My_Int_Array is
+ A : My_Int_Array;
+begin
+ A := (1,2,3,4,5,6);
+ return A;
+end First_Function;
+
+
+function Second_Function return My_Index is
+begin
+ return My_Index'Last;
+end Second_Function;
+
+end Test1;
new file mode 100644
@@ -0,0 +1,11 @@
+package Test1 is
+
+type My_Int is range 0 .. 1000;
+type My_Index is range 0 .. 5;
+type My_Int_Array is array (My_Index) of My_Int;
+
+function First_Function return My_Int_Array;
+
+function Second_Function return My_Index;
+
+end Test1;
\ No newline at end of file
new file mode 100644
GIT binary patch
literal 3792
zcmcgv-D_M$6rb6fn{3@?-89v<M#v^sZHs$%^FgtxX*UVmZm`u7tX~+ncXRJ<wq|$3
z-MclZh=L$40g2#)4?c<rKKLa1;DZoQ5&wuFRe}%FLLUMa^!(<|?A}aP6dyb=bI$pl
zbLPyPJ7<=CD|hKagmb2dvvaJYDU`9z106Xl#4LM&9cEYatzYu3-F)j#zV&0imAjp9
zUEN*W+5}$uKDW&o%|Ayl-!d@&+Jkw=#Qa+?%WveiDeUe>Zl{&IN7~(u%lBxh#VxGx
zwMnTKw`lsDhRJvosSQm1n8M_S6u#33?F@}b1QN$WY@S9$oUR9|MZ=+C0;kn`!FZgX
z2bUC+oPR7<<h}e^Wg<S?wnlBn`wZA3A6%hTM%d^GOZOY``9Xq?vsmohh-t(pkJ0uA
z_@nW`m@zywJirh2C5|xG!#O-T`I;kaesHuuP3P;i*!g2dd@6P}b|yAI2<Pn4o3uio
z#k(7#lgx-J|Hx6=%@f#>*rh0)kT8X-)dop;nTE-t>=bd%`5*CqFw~3&3B#g%5k4Hb
zKUkJ56v5enwtB=gFPlc>_@HS<n<gJKjZ3Ea5`72GeYfF{6$+(_*YFFaW^Ku@)N4$l
z&sEn8m6|`RbfG%#n$iP10ed}sWe>s&w&&UF?BX+5lQWK;9GkE*)>v{pGd_`-7@tg@
zSa6+W-u9&-l{uMAm6NHe->kXQWw+*fl_gSbZ)tgY?a9-r)01lXhPza+Iohr*+bOd2
za=q%Now{?qk}g;L^h%{@7b|7EvXX8zi=JI8yNy(%xw=~S{4@^RNISM~3o%8WPNh^z
zxoZ?@J2p86A;LVC+5_Fl{J+V>ml0>|NbKU=+*I-e75L=8sIIskG@;>=G|-0>N_Ucf
zE1HmW5SO~RUZfuuDB(937+*{9p@V(VO)@@AI0lFshq0M>;@!wxfA0c0kP6#Vz==e6
zD*Kxq`zwK&iQZQB3xQpl_A%_Mhu!&epMd}az0rjXaq9gBBY0`{84MPBWJ6XX*l7p}
zM1vjNhv7_zLi-UlBJ2@~<4pjG+7QPR34ioGNWFLThOq(pasY34cjqDqsZfw@8}!}m
z{1w$N-J85?7Zq~!;skUbvGBc6&pdFv&({Mt+H*j_#mg-92Q?ga&_e+em1&=auu~F;
zpZJZC`dA1@-n`V$YPiZbqv4N9{b>z9Ep^lvguGb)c_>8cT~_#)0nAn<$4$fj)%SWw
z;>usD?0qRHfA!sw3j}}hJ1R8B5|S%_sj^Wiz#nyfUF!H<0V(`ept5k?;QzbCRo&G3
zYClP7$C<+4C9C1e|C)xYIxwrTUiIxFao-F0vXXpv&1V*#TxJy;4Q6@nifuV=v00`c
zoKl@^Lbi)V&%Lq7YzMFR9&Dvjb5#hXP$J-h(3k4fs#~L!wYu+G^xCBwzP<FC)XTM|
zwd&PZUC&>a>$=N@l4n=dx0gr!Pi%;yP-FF-)goCb=sChQhsy{J#E0(&@J}%j>HfO@
zIQgKL_4v;a+=Y-UOt?Qf2D^&?BJAA77xxnHN0vsI-jfAcmW$*4fFJe>Quk|`<Zk(2
zkYG!AcP8BzeXV2g-j-md6DlO#7w<*4{oj_4oQlW(0qOg92-DXjh$ZBQdKF5Dbl(Em
zy5&#GMAu|2^5fS^&%a6-)>Qi>QBY0h|49LotNe<;L3p?LDS4rG{~><kZ{o*sD57-0
z+Ox{5_=jXsa@&anTgHbm$hz+*gyFmBeX%U#^}49~VJ*-%G_a-~|B;MegHwp~_^-$Y
z*KEiK;@i?OFL8Xo1Pv9h?ti!32ua8v$D}+k{ZkRKdOYrg-usBp$o_i~N{ICO4Unx{
O{0}nGccEB_di-B|e~zpG
literal 0
HcmV?d00001
@@ -0,0 +1,19 @@
+-- Compile this file with:
+-- gcc -g -c test1.adb
+
+package body Test1 is
+
+function First_Function return My_Int_Array is
+ A : My_Int_Array;
+begin
+ A := (1,2,3,4,5,6,7);
+ return A;
+end First_Function;
+
+
+function Second_Function return My_Index is
+begin
+ return My_Index'Last;
+end Second_Function;
+
+end Test1;
new file mode 100644
@@ -0,0 +1,11 @@
+package Test1 is
+
+type My_Int is range 0 .. 1000;
+type My_Index is range 0 .. 6;
+type My_Int_Array is array (My_Index) of My_Int;
+
+function First_Function return My_Int_Array;
+
+function Second_Function return My_Index;
+
+end Test1;
new file mode 100644
GIT binary patch
literal 3824
zcmcgv-ESL35Z}Ga<pVd4(-hhgq&VfPt?=1yql&hqbz7yqh!(0s5U8!(bMEZ8#CCK(
zw@G<G0u^CZf+F$A0}nhP@c=I<ec*wr5+H>58wx5_g%F~BiU0vKdo#{uV+7)XiFRk^
zH#57lbGu{Z)v4o04Jiea6bHnr#;6dV46MopB^Jc}Vw0G0+CMn$6{mgIX@Bjsr+#tT
zGb?9rTt&S6<<w0nVE*2~`Id?E?H-)(SUCUKi}O!?!nrba6N2vnzYTl^_`RX!6Tc2E
zw|;l7-%dFL--7ywbN#!tGk`nM4%d1im9sZs`Ur+4WIv{6;xvd;oG!-{d8ZGxy)X;|
zC5a1(X&8n&eGjTO3=f8dxafsHAeod0krO3|%lFiZvR6LKCg5(z+V2Y4XQIt`=OnB$
zF1C$}?4X&P9s%ePkw_dEx6I_kR!DzXKAId!m}8@3!*XL^YO@eMQlh5>Uu#@Uk8B&v
z!ufh_ad4}d+?Uv&*qfLhLFdAjORz$pExQ}~CxqG0{>B!_<_XM5WvNQ1B%I>a>VP1e
zhGB_*u@ktI^0(w5GOQU45XMyb3^`^DMazN(BBU7TsGBY8gk>5#M=Z<8k67}cWgfSz
zm*7K48T!pIUo4iZK{G6tTlLwn+NcXcpRX+ytM%|O>q_<fMb;xb0Bb!$wnyPbHwfG%
zaqO9y^dZkp=XcvVJD=W_+qFBld)GvI`zhZ`J8npZOm0UyQ%PrPVXN*>R{XjjRA)hT
zgW0*s#V7Y<_Dt~dO@Fpg_q42S*DHzaT%+b^y@q$bnypmB?0mK4mZ}xEI-hN}N`YIi
z_{~hSwXo0#!Ym%Pnf2VzRbmD_y=u9f@fRV|^;~d_LX<h5Sp!|j|G%55FQd-5Dv4u9
zj_gZshXU{T7u8kw18z9*G~N^#5D9luey$!N=tz=ub-h5}q)@;wof2{}B}X^(^<M?!
zLxAHzf`=o-p=9a}<H%s|DR2N4ZBHQ%<l@A3<BW1Z`x(T6)Z1qJ(I`H$te-Kj9&z{2
z^%m?$ob_6(sZPBXL(Pmj%{qfAVof+^HKR;pNF<tK!#WJlv@w>Csu5rh6OKIrN!128
zwn+59gdh<2JLq9zm^ugIo!7m350q3a(yNW0-Qnqz{9L-f@ve`kI0YRiqWgfw?*+Gc
z#IZl0kK7>Vh!9tune+!V9PLOCMod+va~8mM5{`a&H<|JzAddSwr0>^o-tUlxKSuh~
z8oq~gtS=I;|3ah+pE%>6lD<G3ZyM&$-|Kb4*`HML776Un-(CI2feroD?<o1DG=EaX
zHWJVu>wJ-P{9Qp}{8prjc-_$dXTrH|dOm5g<C)^$rJ&)Q|2YlkItaVDR14h_@Gyw@
z9800U7z!IZuCPnZrmzEl-nBiy)T+SmO}PO!CA+0k;9po{cBAIK2Ai+eeGY*wSVXv}
z^w~zO=GS4%dL#60=ysWA=+3@OdZpg77lOuuAB0P^u0K~S2X2kOJst5su~CS^8uNGN
zMG7QbW`KCS<_L|$!1(yxK>Q1wfOLOde;j=9E$i`LVQ?41z2b!TN5|04@gK*XyZGY0
z#Qsr$5vLESAak@h_7C*KT#@*GO@iEQ|BD2+mG|nT`{KLSG38B#%B_YfN%zHm(JlWJ
zCCc%bKfW(Le-AKyO@Ks>_AjCmBi$G6-S#igM&~FN_s3r=eg6f(a81q=L`84Y{@*Y_
zocCw`3gF%1Pt%23`G@!`e-r;49ttQMvCho<GJh8=EO(qhc#Y!Y7|Ocu2Y}&sq2r>9
zqBkjCuM5|Y{XPQ$*VN;$QT!r164&FG0Y}#Y*_pjhjt&9%{ZcSEp6`FRy)h(5KaOcS
oF#M;YV)b~u6Z+f7_>=VhUPL8Edi{pM)-C=HZNz<um(b(?0uZO3dH?_b
literal 0
HcmV?d00001
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-variable-symbols>
<!-- signed char -->
<elf-symbol name='a' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libstdc++.so.6'/>
<dependency name='libm.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libgcc_s.so.1'/>
<dependency name='libc.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libgcc_s.so.1'/>
<dependency name='libc.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-function-symbols>
<!-- foo(S&) -->
<elf-symbol name='_Z3fooR1S' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libstdc++.so.6'/>
<dependency name='libm.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libstdc++.so.6'/>
<dependency name='libm.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='libdbus-1.so.3'>
+<abi-corpus version='2.2' soname='libdbus-1.so.3'>
<elf-needed>
<dependency name='librt.so.1'/>
<dependency name='libpthread.so.0'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='libGLU.so.1'>
+<abi-corpus version='2.2' soname='libGLU.so.1'>
<elf-needed>
<dependency name='libGL.so.1'/>
<dependency name='libstdc++.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='libtsan.so.0'>
+<abi-corpus version='2.2' soname='libtsan.so.0'>
<elf-needed>
<dependency name='librt.so.1'/>
<dependency name='libpthread.so.0'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='libharfbuzz.so.0'>
+<abi-corpus version='2.2' soname='libharfbuzz.so.0'>
<elf-needed>
<dependency name='libglib-2.0.so.0'/>
<dependency name='libfreetype.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='libvtkRenderingLIC-6.1.so.1'>
+<abi-corpus version='2.2' soname='libvtkRenderingLIC-6.1.so.1'>
<elf-needed>
<dependency name='libvtkIOLegacy-6.1.so.1'/>
<dependency name='libvtkIOXML-6.1.so.1'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='libtcmalloc_and_profiler.so.4'>
+<abi-corpus version='2.2' soname='libtcmalloc_and_profiler.so.4'>
<elf-needed>
<dependency name='libunwind.so.8'/>
<dependency name='libpthread.so.0'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libstdc++.so.6'/>
<dependency name='libm.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='libvtkParallelCore-6.1.so.1'>
+<abi-corpus version='2.2' soname='libvtkParallelCore-6.1.so.1'>
<elf-needed>
<dependency name='libvtkIOLegacy-6.1.so.1'/>
<dependency name='libvtkIOCore-6.1.so.1'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libstdc++.so.6'/>
<dependency name='libm.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='test3.so.1'>
+<abi-corpus version='2.2' soname='test3.so.1'>
<elf-needed>
<dependency name='libc.so.6'/>
</elf-needed>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libc.so.6'/>
</elf-needed>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-function-symbols>
<!-- bar(void*) -->
<elf-symbol name='_Z3barPv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libstdc++.so.6'/>
<dependency name='libm.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-function-symbols>
<!-- foo(S&) -->
<elf-symbol name='_Z3fooR1S' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libstdc++.so.6'/>
<dependency name='libm.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-btf/test0.o'>
+<abi-corpus version='2.2' path='data/test-read-btf/test0.o'>
<elf-function-symbols>
<elf-symbol name='fn0' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-function-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-btf/test1.o'>
+<abi-corpus version='2.2' path='data/test-read-btf/test1.o'>
<elf-function-symbols>
<elf-symbol name='fn0' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-function-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-common/PR27700/test-PR27700.o'>
+<abi-corpus version='2.2' path='data/test-read-common/PR27700/test-PR27700.o'>
<elf-function-symbols>
<elf-symbol name='foo' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-function-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-common/test-PR26568-1.o'>
+<abi-corpus version='2.2' path='data/test-read-common/test-PR26568-1.o'>
<elf-function-symbols>
<elf-symbol name='fun' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-function-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-common/test-PR26568-2.o'>
+<abi-corpus version='2.2' path='data/test-read-common/test-PR26568-2.o'>
<elf-function-symbols>
<elf-symbol name='fun' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-function-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-alias.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-alias.o'>
<elf-function-symbols>
<elf-symbol name='alias_func' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='main_func' type='func-type' binding='global-binding' visibility='default-visibility' alias='alias_func' is-defined='yes'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-ambiguous-struct-A.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-ambiguous-struct-A.o'>
<elf-variable-symbols>
<elf-symbol name='foo' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-variable-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-ambiguous-struct-B.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-ambiguous-struct-B.o'>
<elf-variable-symbols>
<elf-symbol name='a' size='24' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-variable-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-anonymous-fields.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-anonymous-fields.o'>
<elf-variable-symbols>
<elf-symbol name='t' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-variable-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-array-mdimension.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-array-mdimension.o'>
<elf-variable-symbols>
<elf-symbol name='a' size='120' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-variable-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-array-of-pointers.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-array-of-pointers.o'>
<elf-variable-symbols>
<elf-symbol name='t' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-variable-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-array-size.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-array-size.o'>
<elf-variable-symbols>
<elf-symbol name='bar' size='1' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='baz' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-bitfield-enum.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-bitfield-enum.o'>
<elf-variable-symbols>
<elf-symbol name='e' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-variable-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-bitfield.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-bitfield.o'>
<elf-variable-symbols>
<elf-symbol name='f' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='fb' size='1' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-callback.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-callback.o'>
<elf-function-symbols>
<elf-symbol name='assign' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='f2' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-callback2.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-callback2.o'>
<elf-variable-symbols>
<elf-symbol name='s0' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-variable-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-conflicting-type-syms-a.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-conflicting-type-syms-a.o'>
<elf-variable-symbols>
<elf-symbol name='a' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='ignore2' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-conflicting-type-syms-b.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-conflicting-type-syms-b.o'>
<elf-variable-symbols>
<elf-symbol name='b' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='ignore1' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-const-array.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-const-array.o'>
<elf-variable-symbols>
<elf-symbol name='a' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-variable-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-dynamic-array.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-dynamic-array.o'>
<elf-function-symbols>
<elf-symbol name='use_struct_s' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-function-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-enum-many.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-enum-many.o'>
<elf-variable-symbols>
<elf-symbol name='bar' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='foo' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-enum-symbol.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-enum-symbol.o'>
<elf-variable-symbols>
<elf-symbol name='primary1' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-variable-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-enum.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-enum.o'>
<elf-variable-symbols>
<elf-symbol name='bar' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='foo' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-fallback.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-fallback.o'>
<elf-variable-symbols>
<elf-symbol name='a' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-variable-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-forward-type-decl.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-forward-type-decl.o'>
<elf-variable-symbols>
<elf-symbol name='addr' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-variable-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-functions-declaration.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-functions-declaration.o'>
<elf-function-symbols>
<elf-symbol name='attribute_container_add_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='attribute_container_device_trigger' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-linux-module.ko'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-linux-module.ko'>
<elf-function-symbols>
<elf-symbol name='testexport' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x533ba8e8'/>
<elf-symbol name='testexport2' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65900b2f'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test-list-struct.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test-list-struct.o'>
<elf-variable-symbols>
<elf-symbol name='n1' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='n2' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test0'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test0'>
<elf-needed>
<dependency name='libc.so.6'/>
</elf-needed>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test0'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test0'>
<elf-needed>
<dependency name='libc.so.6'/>
</elf-needed>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test1.so'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test1.so'>
<elf-needed>
<dependency name='libc.so.6'/>
</elf-needed>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test1.so'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test1.so'>
<elf-needed>
<dependency name='libc.so.6'/>
</elf-needed>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test2.so'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test2.so'>
<elf-needed>
<dependency name='libc.so.6'/>
</elf-needed>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test2.so'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test2.so'>
<elf-needed>
<dependency name='libc.so.6'/>
</elf-needed>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-common/test3.so' soname='test3.so.1'>
+<abi-corpus version='2.2' path='data/test-read-common/test3.so' soname='test3.so.1'>
<elf-needed>
<dependency name='libc.so.6'/>
</elf-needed>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-common/test3.so' soname='test3.so.1'>
+<abi-corpus version='2.2' path='data/test-read-common/test3.so' soname='test3.so.1'>
<elf-needed>
<dependency name='libc.so.6'/>
</elf-needed>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-common/test4.so'>
+<abi-corpus version='2.2' path='data/test-read-common/test4.so'>
<elf-needed>
<dependency name='libc.so.6'/>
</elf-needed>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-common/test4.so'>
+<abi-corpus version='2.2' path='data/test-read-common/test4.so'>
<elf-needed>
<dependency name='libc.so.6'/>
</elf-needed>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test5.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test5.o'>
<elf-function-symbols>
<elf-symbol name='bar' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='bar2' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test7.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test7.o'>
<elf-function-symbols>
<elf-symbol name='first_type_constructor' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-function-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test8.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test8.o'>
<elf-function-symbols>
<elf-symbol name='bar' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-function-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='data/test-read-ctf/test9.o'>
+<abi-corpus version='2.2' path='data/test-read-ctf/test9.o'>
<elf-function-symbols>
<elf-symbol name='foo' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-function-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='build/cached/third_party/boost-1.60.0/libboost_system.so'/>
<dependency name='libm.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='build/cached/third_party/s2/libs2.so'/>
<dependency name='build/cached/third_party/s2/util/math/libmath.so'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-function-symbols>
<elf-symbol name='_ZN4stac14buggy_functionEPFvPFfiiEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-function-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-function-symbols>
<elf-symbol name='__sdhci_add_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x74ae518'/>
<elf-symbol name='__sdhci_read_caps' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x711f65c'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='libgdbm.so.6'>
+<abi-corpus version='2.2' soname='libgdbm.so.6'>
<elf-needed>
<dependency name='libc.so.6'/>
<dependency name='ld-linux-x86-64.so.2'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libc.so.6'/>
</elf-needed>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-function-symbols>
<elf-symbol name='foo' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-function-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-variable-symbols>
<elf-symbol name='_ZN1N1S1DE' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-variable-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-variable-symbols>
<elf-symbol name='a' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='xx' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -1,2 +1,2 @@
-<abi-corpus version='2.1' soname='libkjava.so.1'>
+<abi-corpus version='2.2' soname='libkjava.so.1'>
</abi-corpus>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libstdc++.so.6'/>
<dependency name='libm.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libgcc_s.so.1'/>
<dependency name='libc.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libgcc_s.so.1'/>
<dependency name='libc.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-function-symbols>
<elf-symbol name='fun' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-function-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-function-symbols>
<elf-symbol name='fun' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-function-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-variable-symbols>
<elf-symbol name='a' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-variable-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='libaaudio.so'>
+<abi-corpus version='2.2' soname='libaaudio.so'>
<elf-needed>
<dependency name='libaaudio_internal.so'/>
<dependency name='libaudioclient.so'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='libandroid.so'>
+<abi-corpus version='2.2' soname='libandroid.so'>
<elf-needed>
<dependency name='liblog.so'/>
<dependency name='libhidlbase.so'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-function-symbols>
<elf-symbol name='alias_func' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='main_func' type='func-type' binding='global-binding' visibility='default-visibility' alias='alias_func' is-defined='yes'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libstdc++.so.6'/>
<dependency name='libm.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libstdc++.so.6'/>
<dependency name='libm.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libstdc++.so.6'/>
<dependency name='libm.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libstdc++.so.6'/>
<dependency name='libm.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='build/debug/third_party/boost-1.56.0/libboost_system.so'/>
<dependency name='librt.so.1'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='build/debug/mongo/db/libserver_parameters.so'/>
<dependency name='build/debug/mongo/libbase.so'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='build/debug/mongo/bson/mutable/libmutable_bson.so'/>
<dependency name='build/debug/mongo/bson/util/libbson_extract.so'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='libdbus-1.so.3'>
+<abi-corpus version='2.2' soname='libdbus-1.so.3'>
<elf-needed>
<dependency name='librt.so.1'/>
<dependency name='libpthread.so.0'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='libGLU.so.1'>
+<abi-corpus version='2.2' soname='libGLU.so.1'>
<elf-needed>
<dependency name='libGL.so.1'/>
<dependency name='libstdc++.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='libtsan.so.0'>
+<abi-corpus version='2.2' soname='libtsan.so.0'>
<elf-needed>
<dependency name='librt.so.1'/>
<dependency name='libpthread.so.0'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='liboffloadmic_host.so.5'>
+<abi-corpus version='2.2' soname='liboffloadmic_host.so.5'>
<elf-needed>
<dependency name='libdl.so.2'/>
<dependency name='libstdc++.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='libharfbuzz.so.0'>
+<abi-corpus version='2.2' soname='libharfbuzz.so.0'>
<elf-needed>
<dependency name='libglib-2.0.so.0'/>
<dependency name='libfreetype.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='libvtkRenderingLIC-6.1.so.1'>
+<abi-corpus version='2.2' soname='libvtkRenderingLIC-6.1.so.1'>
<elf-needed>
<dependency name='libvtkIOLegacy-6.1.so.1'/>
<dependency name='libvtkIOXML-6.1.so.1'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='libtcmalloc_and_profiler.so.4'>
+<abi-corpus version='2.2' soname='libtcmalloc_and_profiler.so.4'>
<elf-needed>
<dependency name='libunwind.so.8'/>
<dependency name='libpthread.so.0'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libstdc++.so.6'/>
<dependency name='libm.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libstdc++.so.6'/>
<dependency name='libm.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='libvtkParallelCore-6.1.so.1'>
+<abi-corpus version='2.2' soname='libvtkParallelCore-6.1.so.1'>
<elf-needed>
<dependency name='libvtkIOLegacy-6.1.so.1'/>
<dependency name='libvtkIOCore-6.1.so.1'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libstdc++.so.6'/>
<dependency name='libm.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='libstdc++.so.6'>
+<abi-corpus version='2.2' soname='libstdc++.so.6'>
<elf-needed>
<dependency name='libm.so.6'/>
<dependency name='libc.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='test3.so.1'>
+<abi-corpus version='2.2' soname='test3.so.1'>
<elf-needed>
<dependency name='libc.so.6'/>
</elf-needed>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='test3.so.1'>
+<abi-corpus version='2.2' soname='test3.so.1'>
<elf-needed>
<dependency name='libc.so.6'/>
</elf-needed>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='test3.so.1'>
+<abi-corpus version='2.2' soname='test3.so.1'>
<elf-needed>
<dependency name='libc.so.6'/>
</elf-needed>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='test3.so.1'>
+<abi-corpus version='2.2' soname='test3.so.1'>
<elf-needed>
<dependency name='libc.so.6'/>
</elf-needed>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='test3.so.1'>
+<abi-corpus version='2.2' soname='test3.so.1'>
<elf-needed>
<dependency name='libc.so.6'/>
</elf-needed>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' soname='test3.so.1'>
+<abi-corpus version='2.2' soname='test3.so.1'>
<elf-needed>
<dependency name='libc.so.6'/>
</elf-needed>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libc.so.6'/>
</elf-needed>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libc.so.6'/>
</elf-needed>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-function-symbols>
<elf-symbol name='_Z3barPv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-function-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-function-symbols>
<elf-symbol name='_Z3barPv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-function-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libstdc++.so.6'/>
<dependency name='libm.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libstdc++.so.6'/>
<dependency name='libm.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-function-symbols>
<elf-symbol name='_Z3fooR1S' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-function-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-function-symbols>
<elf-symbol name='_Z3fooR1S' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-function-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libstdc++.so.6'/>
<dependency name='libm.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='libstdc++.so.6'/>
<dependency name='libm.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1'>
+<abi-corpus version='2.2'>
<elf-needed>
<dependency name='build/debug/third_party/boost-1.56.0/libboost_system.so'/>
<dependency name='libm.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='tests/data/test-symtab/kernel-modversions/one_of_each.ko' architecture='elf-amd-x86_64'>
+<abi-corpus version='2.2' path='tests/data/test-symtab/kernel-modversions/one_of_each.ko' architecture='elf-amd-x86_64'>
<elf-function-symbols>
<elf-symbol name='exported_function' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe52d5bcf'/>
<elf-symbol name='exported_function_gpl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfda43846'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='libtest-v0.so'>
+<abi-corpus version='2.2' path='libtest-v0.so'>
<elf-function-symbols>
<elf-symbol name='_fini' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='repr7' architecture='elf-amd-x86_64'>
+<abi-corpus version='2.2' path='repr7' architecture='elf-amd-x86_64'>
<elf-function-symbols>
<elf-symbol name='_Z2fni' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-function-symbols>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='tests/data/test-read-dwarf/libtest24-drop-fns.so'>
+<abi-corpus version='2.2' path='tests/data/test-read-dwarf/libtest24-drop-fns.so'>
<elf-needed>
<dependency name='libgcc_s.so.1'/>
<dependency name='libc.so.6'/>
@@ -1,4 +1,4 @@
-<abi-corpus version='2.1' path='tests/data/test-read-dwarf/libtest24-drop-fns.so'>
+<abi-corpus version='2.2' path='tests/data/test-read-dwarf/libtest24-drop-fns.so'>
<elf-needed>
<dependency name='libgcc_s.so.1'/>
<dependency name='libc.so.6'/>
@@ -680,6 +680,28 @@ InOutSpec in_out_specs[] =
"data/test-abidiff-exit/test-allow-type-region-v0--v5-report-2.txt",
"output/test-abidiff-exit/test-allow-type-region-v0--v5-report-2.txt"
},
+ {
+ "data/test-abidiff-exit/ada-subrange/test1-ada-subrange/v0/test1.o",
+ "data/test-abidiff-exit/ada-subrange/test1-ada-subrange/v1/test1.o",
+ "",
+ "",
+ "",
+ "--no-default-suppression",
+ abigail::tools_utils::ABIDIFF_ABI_CHANGE,
+ "data/test-abidiff-exit/ada-subrange/test1-ada-subrange/test1-ada-subrange-report-1.txt",
+ "output/test-abidiff-exit/ada-subrange/test1-ada-subrange/test1-ada-subrange-report-1.txt"
+ },
+ {
+ "data/test-abidiff-exit/ada-subrange/test1-ada-subrange/v0/test1.o",
+ "data/test-abidiff-exit/ada-subrange/test1-ada-subrange/v1/test1.o",
+ "",
+ "",
+ "",
+ "--no-default-suppression --leaf-changes-only",
+ abigail::tools_utils::ABIDIFF_ABI_CHANGE,
+ "data/test-abidiff-exit/ada-subrange/test1-ada-subrange/test1-ada-subrange-report-2.txt",
+ "output/test-abidiff-exit/ada-subrange/test1-ada-subrange/test1-ada-subrange-report-2.txt"
+ },
#ifdef WITH_BTF
{
"data/test-abidiff-exit/btf/test0-v0.o",