]> git.ipfire.org Git - thirdparty/gcc.git/commit
ada: Ignore ghost nodes in call graph information for dispatching calls
authorPiotr Trojanek <trojanek@adacore.com>
Mon, 26 Feb 2024 08:32:20 +0000 (09:32 +0100)
committerMarc Poulhiès <poulhies@adacore.com>
Thu, 16 May 2024 08:49:32 +0000 (10:49 +0200)
commitc485a154ae0cfa1a63c79a1f3b82d6f2d4a107b5
tree1899e549c078aec936497eb9c553965dae210a0d
parenta802cb3c5f530e77dabcb6343d79cb7a24f96ed3
ada: Ignore ghost nodes in call graph information for dispatching calls

When emitting call graph information, we already skipped calls to
ignored ghost entities, but this code was causing crashes (in production
builds) and assertion failures (in development builds), because the
ignored ghost entities are not fully decorated, e.g. when they come from
instances of generic units with default subprograms.

With this patch we skip call graph information for ignored ghost
entities when they are registered, both as explicit calls and as
tagged types that will come with internally generated dispatching
subprograms.

gcc/ada/

* exp_cg.adb (Generate_CG_Output): Remove code for ignored ghost
entities that applied to subprogram calls.
(Register_CG_Node): Skip ignored ghost entities, both calls
and tagged types, when they are registered.
gcc/ada/exp_cg.adb