Explicitely detect anonymous data member changes
authorDodji Seketeli <dodji@redhat.com>
Wed, 6 Jun 2018 10:05:10 +0000 (12:05 +0200)
committerDodji Seketeli <dodji@redhat.com>
Wed, 6 Jun 2018 12:07:10 +0000 (14:07 +0200)
commitaf5e660fbadbda378d9c2df19db7b4e130059ca8
tree868fb9c199cdd8e1e624a3474815521c7b7f4c8c
parent12c04fe2d943d324b600a64d0c8156742b6078d2
Explicitely detect anonymous data member changes

This patch detects when a data member becomes anonymous or when an
anonymous data member becomes non anonymous and emits an explicit
message.

* include/abg-comp-filter.h (has_anonymous_data_member_change):
Add new function declaration.
* include/abg-fwd.h (is_data_member, is_anonymous_data_member):
declare new overloads.
* src/abg-comp-filter.cc (has_anonymous_data_member_change):
Define new overloads.
* src/abg-ir.cc (is_data_member, is_anonymous_data_member): Define
new overloads.
* src/abg-reporter-priv.cc (represent): In the var_diff overload,
detect when we have anonymous data member changes and emit
explicit error messages then.
* tests/data/test-diff-dwarf/test45-anon-dm-change-report-0.txt:
New test material.
* tests/data/test-diff-dwarf/test45-anon-dm-change-v0.cc: Likewise.
* tests/data/test-diff-dwarf/test45-anon-dm-change-v0.o: Likewise.
* tests/data/test-diff-dwarf/test45-anon-dm-change-v1.cc: Likewise.
* tests/data/test-diff-dwarf/test45-anon-dm-change-v1.o: Likewise.
* tests/data/Makefile.am: Add the new test material above to source
distribution.
* tests/test-diff-dwarf.cc (in_out_specs): Add the new test
material above to the test harness.
* tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Adjust.
* tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Likewise.
* tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt: Likewise.
* tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: Likewise.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
16 files changed:
include/abg-comp-filter.h
include/abg-fwd.h
src/abg-comp-filter.cc
src/abg-ir.cc
src/abg-reporter-priv.cc
tests/data/Makefile.am
tests/data/test-diff-dwarf/test45-anon-dm-change-report-0.txt [new file with mode: 0644]
tests/data/test-diff-dwarf/test45-anon-dm-change-v0.cc [new file with mode: 0644]
tests/data/test-diff-dwarf/test45-anon-dm-change-v0.o [new file with mode: 0644]
tests/data/test-diff-dwarf/test45-anon-dm-change-v1.cc [new file with mode: 0644]
tests/data/test-diff-dwarf/test45-anon-dm-change-v1.o [new file with mode: 0644]
tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt
tests/test-diff-dwarf.cc