[PATCH 2/3] Fix inheritance of scope_decl::insert_member_decl
Dodji Seketeli
dodji@seketeli.org
Mon Jul 27 16:14:12 GMT 2020
Giuliano Procida <gprocida@google.com> a écrit:
> The classes class_decl, class_or_union and scope_decl derive from each
> other. The method insert_member_decl is declared virtual and defined
> in each of these. Unfortunately, it has different argument types in
> the base scope_decl class.
>
> Most calls to insert_member_decl are at a statically known class, but
> in insert_decl_into_scope the method is called via a scope_decl
> pointer. There is the possibility that this could be a type derived
> from scope_decl rather than scope_decl itself, in which case the base
> method would be called, not as intended.
>
> This commit adjusts the type of the member argument to
> scope_decl::insert_member_decl to match the other two classes and
> eliminates the last trigger of Clang's -Werror-overloaded-virtual.
>
> * include/abg-ir.h (scope_decl::insert_member_decl): Change
> type of member argument from const decl_base_sptr& to plain
> decl_base_sptr.
> * src/abg-ir.cc (scope_decl::insert_member_decl): Likewise.
>
> Signed-off-by: Giuliano Procida <gprocida@google.com>
Applied to master, thanks!
Cheers,
--
Dodji
More information about the Libabigail
mailing list