[Bug default/26591] New: detect pathologically redundant types in abixml

dodji at redhat dot com sourceware-bugzilla@sourceware.org
Wed Sep 9 15:18:30 GMT 2020


            Bug ID: 26591
           Summary: detect pathologically redundant types in abixml
           Product: libabigail
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: default
          Assignee: dodji at redhat dot com
          Reporter: dodji at redhat dot com
                CC: libabigail at sourceware dot org
  Target Milestone: ---

In general, a current version of libabigail tries hard to de-duplicate types. 
As a result, the idea is that abixml file have non-duplicated types.

This means that in theory, type ids as specified by the value of the attribute
id="type-id-xxxx" should be defined only once in the abixml file.

But then that is the theory.

In practice, there are cases where two types can have the same ID.  That
usually involves a sub-type.

For instance, sub-ranges of arrays are sub-types that are always part of array
types in C and C++ (In Ada, though, they can be a type on their own).  So
sub-ranges are duplicated in practice, but then I don't think that's a problem.

Another valid instance of duplicated type is when there are declaration-only
types, in C++, which have different member types.  For instance, a type Foo
might be declared in a header file with a member type Bar0;  then in another
header file, Foo might be declared again with another member type Bar1.  So
just to be able to define Bar0 and Bar1 in the abixml, we need to show declare
Foo twice, with the same type id.

In C++, I am guessing that the other "fair" case of duplicated ID would be
violations of the "One Definition Rule", because libabigail doesn't detect

All other cases (included those listed here) of duplicated type IDs should be
detected so that they can be either documented or be flagged as being symptoms
a problem related to type comparison in libabigail.

You are receiving this mail because:
You are on the CC list for the bug.

More information about the Libabigail mailing list