Internal pretty repr of union cannot be flat representation

This is the first patch of this series:

    Internal pretty repr of union cannot be flat representation
    Fix anonymous union constructed under the wrong context
    Propagate private type diff category through refs/qualified type diffs

The intent of this series is to fix the bug:

    https://sourceware.org/bugzilla/show_bug.cgi?id=24410
    "Empty change report emitted for libpoppler-qt5.so.1.18.0"

The internal pretty representation of a union must be its fully
qualified name, even when it's a anonymous union.  It cannot be its
flat representation as for anonymous unions, that would lead to
confusion between anonymous unions that have the same flat
representation but are in different scopes.

Fixed thus.

Note that regression tests are all updated in the last patch of the
series

      * src/abg-ir.cc (union_decl::get_pretty_representation):
        Anonymous internal pretty representation of unin is its fully
        qualified name.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
This commit is contained in:
Dodji Seketeli 2019-04-08 11:17:09 +02:00
parent 3107287e1e
commit 522ac2595d

View File

@ -19718,7 +19718,7 @@ string
union_decl::get_pretty_representation(bool internal) const
{
string repr;
if (get_is_anonymous())
if (get_is_anonymous() && !internal)
repr = get_class_or_union_flat_representation(this, "",
/*one_line=*/true);
else