public inbox for libabigail@sourceware.org
 help / color / mirror / Atom feed
* [Bug default/29239] New: abidiff - possibly unintentionally harmless diffs
@ 2022-06-10 12:06 gprocida at google dot com
  2022-06-13  9:29 ` Dodji Seketeli
  2022-06-13  9:29 ` [Bug default/29239] " dodji at seketeli dot org
  0 siblings, 2 replies; 3+ messages in thread
From: gprocida at google dot com @ 2022-06-10 12:06 UTC (permalink / raw)
  To: libabigail

https://sourceware.org/bugzilla/show_bug.cgi?id=29239

            Bug ID: 29239
           Summary: abidiff - possibly unintentionally harmless diffs
           Product: libabigail
           Version: unspecified
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: default
          Assignee: dodji at redhat dot com
          Reporter: gprocida at google dot com
                CC: libabigail at sourceware dot org
  Target Milestone: ---

Created attachment 14141
  --> https://sourceware.org/bugzilla/attachment.cgi?id=14141&action=edit
XML files to compare

Consider the attached XML files.

They were generated from:

struct foo {
  int x;
};

struct boo {
  foo* ptr1;
  foo& lref1;
  foo&& rref1;

  int* ptr2;
  int& lref2;
  int&& rref2;
};

void func(boo a) {
  (void) a;
}

and

struct foo {
  long x;
};

struct boo {
  foo* ptr1;
  foo& lref1;
  foo&& rref1;

  char* ptr2;
  char& lref2;
  char&& rref2;
};

void func(boo a) {
  (void) a;
}


So struct foo has changed and the second half of struct boo has changed.

abidiff treats 2 of the 6 changes as harmless. Is this intentional?

Regards,
Giuliano.

abidiff:

Functions changes summary: 0 Removed, 1 Changed, 0 Added function
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable

1 function with some indirect sub-type change:

  [C] 'function void func(boo)' has some indirect sub-type changes:
    parameter 1 of type 'struct boo' has sub-type changes:
      type size hasn't changed
      4 data member changes (2 filtered):
        type of 'foo* ptr1' changed:
          in pointed to type 'struct foo':
            type size changed from 32 to 64 (in bits)
            1 data member change:
              type of 'int x' changed:
                type name changed from 'int' to 'long int'
                type size changed from 32 to 64 (in bits)
        type of 'int* ptr2' changed:
          in pointed to type 'int':
            type name changed from 'int' to 'char'
            type size changed from 32 to 8 (in bits)
        type of 'int& lref2' changed:
          in referenced type 'int':
            type name changed from 'int' to 'char'
            type size changed from 32 to 8 (in bits)
        type of 'int&& rref2' changed:
          in referenced type 'int':
            type name changed from 'int' to 'char'
            type size changed from 32 to 8 (in bits)

abidiff --harmless

Functions changes summary: 0 Removed, 1 Changed, 0 Added function
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable

1 function with some indirect sub-type change:

  [C] 'function void func(boo)' has some indirect sub-type changes:
    parameter 1 of type 'struct boo' has sub-type changes:
      type size hasn't changed
      6 data member changes:
        type of 'foo* ptr1' changed:
          in pointed to type 'struct foo':
            type size changed from 32 to 64 (in bits)
            1 data member change:
              type of 'int x' changed:
                type name changed from 'int' to 'long int'
                type size changed from 32 to 64 (in bits)
        type of 'foo& lref1' changed:
          referenced type 'struct foo' changed, as reported earlier
        type of 'foo&& rref1' changed:
          referenced type 'struct foo' changed, as reported earlier
        type of 'int* ptr2' changed:
          in pointed to type 'int':
            type name changed from 'int' to 'char'
            type size changed from 32 to 8 (in bits)
        type of 'int& lref2' changed:
          in referenced type 'int':
            type name changed from 'int' to 'char'
            type size changed from 32 to 8 (in bits)
        type of 'int&& rref2' changed:
          in referenced type 'int':
            type name changed from 'int' to 'char'
            type size changed from 32 to 8 (in bits)

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Bug default/29239] New: abidiff - possibly unintentionally harmless diffs
  2022-06-10 12:06 [Bug default/29239] New: abidiff - possibly unintentionally harmless diffs gprocida at google dot com
@ 2022-06-13  9:29 ` Dodji Seketeli
  2022-06-13  9:29 ` [Bug default/29239] " dodji at seketeli dot org
  1 sibling, 0 replies; 3+ messages in thread
From: Dodji Seketeli @ 2022-06-13  9:29 UTC (permalink / raw)
  To: gprocida at google dot com via Libabigail; +Cc: gprocida at google dot com

gprocida at google dot com via Libabigail <libabigail@sourceware.org> a
écrit:

Hello,

> So struct foo has changed and the second half of struct boo has changed.
>
> abidiff treats 2 of the 6 changes as harmless. Is this intentional?

The two changes that are flagged harmless are these:

        type of 'foo& lref1' changed:
          referenced type 'struct foo' changed, as reported earlier
        type of 'foo&& rref1' changed:
          referenced type 'struct foo' changed, as reported earlier

They are actually "redundant" changes, meaning, the changes to struct
foo have already been reported earlier.  So these changes are just being
left out of the report for "compactness", thus, hopefully, better
legibility.

So yes, that is intentional.

Cheers,

-- 
		Dodji

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug default/29239] abidiff - possibly unintentionally harmless diffs
  2022-06-10 12:06 [Bug default/29239] New: abidiff - possibly unintentionally harmless diffs gprocida at google dot com
  2022-06-13  9:29 ` Dodji Seketeli
@ 2022-06-13  9:29 ` dodji at seketeli dot org
  1 sibling, 0 replies; 3+ messages in thread
From: dodji at seketeli dot org @ 2022-06-13  9:29 UTC (permalink / raw)
  To: libabigail

https://sourceware.org/bugzilla/show_bug.cgi?id=29239

--- Comment #1 from dodji at seketeli dot org ---
gprocida at google dot com via Libabigail <libabigail@sourceware.org> a
écrit:

Hello,

> So struct foo has changed and the second half of struct boo has changed.
>
> abidiff treats 2 of the 6 changes as harmless. Is this intentional?

The two changes that are flagged harmless are these:

        type of 'foo& lref1' changed:
          referenced type 'struct foo' changed, as reported earlier
        type of 'foo&& rref1' changed:
          referenced type 'struct foo' changed, as reported earlier

They are actually "redundant" changes, meaning, the changes to struct
foo have already been reported earlier.  So these changes are just being
left out of the report for "compactness", thus, hopefully, better
legibility.

So yes, that is intentional.

Cheers,

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-06-13  9:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-10 12:06 [Bug default/29239] New: abidiff - possibly unintentionally harmless diffs gprocida at google dot com
2022-06-13  9:29 ` Dodji Seketeli
2022-06-13  9:29 ` [Bug default/29239] " dodji at seketeli dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).