public inbox for libabigail@sourceware.org
 help / color / mirror / Atom feed
* [PATCH, applied] ir: Support cloning data members of unions
@ 2022-09-22 14:51 Dodji Seketeli
  0 siblings, 0 replies; only message in thread
From: Dodji Seketeli @ 2022-09-22 14:51 UTC (permalink / raw)
  To: libabigail; +Cc: woodard

Hello,

When cloning a data member, var_decl::clone wrongly assumes we are
looking at a data member of a class.  It could also be a data member
of an union.  Fixed thus.

This fixes crashes when self comparing Fedora 36 packages of the qt6
group with the command:

    $ fedabipkgdiff --self-compare --from fc36 qt6-qtsensors

There are lot of other packages from the qt group that were making
this command fail, but I am not mentioning them here for the sake
conciseness.

	* src/abg-ir.cc (var_decl::clone): Support cloning data members
	for unions.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
Applied to master.
---
 src/abg-ir.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/abg-ir.cc b/src/abg-ir.cc
index 1cd2a219..f739b126 100644
--- a/src/abg-ir.cc
+++ b/src/abg-ir.cc
@@ -19131,7 +19131,7 @@ var_decl::clone() const
 
   if (is_member_decl(*this))
     {
-      class_decl* scope = dynamic_cast<class_decl*>(get_scope());
+      class_or_union* scope = is_class_or_union_type(get_scope());
       scope->add_data_member(v, get_member_access_specifier(*this),
 			     get_data_member_is_laid_out(*this),
 			     get_member_is_static(*this),
-- 
2.37.2


-- 
		Dodji


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-09-22 14:51 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-22 14:51 [PATCH, applied] ir: Support cloning data members of unions Dodji Seketeli

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).