Hi Dave,

Thank you for the warm welcome to the community and for clarifying the GSoC
2026 deadlines. While I missed the application window, I am highly
motivated to continue contributing to GCC as an independent contributor!

Regarding your technical questions, I encountered these fatal compilation
errors while building the latest master branch using g++ (GCC) 14.1.0 on a
clean build.

The compiler threw an ambiguity error because there are two declarations
that look identical to it at that scope:
1. `class ana::exploded_cluster` defined in `gcc/analyzer/common.h`
2. `class exploded_cluster` defined right before it in
`gcc/analyzer/engine.cc` at line 3928.

Here is the exact compiler output showing the ambiguity and the subsequent
cascade of override failures:

../../gcc/analyzer/engine.cc:3934:34: error: reference to
‘exploded_cluster’ is ambiguous
 3934 | class supernode_cluster : public exploded_cluster
      |                                  ^~~~~~~~~~~~~~~~
In file included from ../../gcc/analyzer/engine.cc:21:
../../gcc/analyzer/common.h:125:7: note: candidates are: ‘class
ana::exploded_cluster’
  125 | class exploded_cluster;
      |       ^~~~~~~~~~~~~~~~
../../gcc/analyzer/engine.cc:3928:7: note:                 ‘class
exploded_cluster’
 3928 | class exploded_cluster : public cluster<eg_traits>
      |       ^~~~~~~~~~~~~~~~

By explicitly specifying `public ana::exploded_cluster`, the compiler
immediately resolved the correct base class from common.h, and fixing the
`dump_args_t` type mismatch allowed the virtual method overrides to compile
successfully.

I will make sure to update my patch format to include proper ChangeLog
messages in the commit as per the guidelines.

Best regards,
Zeinab Ayman

‫في الاثنين، 18 مايو 2026 في 8:00 م تمت كتابة ما يلي بواسطة ‪David
Malcolm‬‏ <‪[email protected]‬‏>:‬

> On Mon, 2026-05-18 at 19:43 +0300, Zeinab Ayman via Gcc wrote:
> > Hi Jonathan,
> >
> > Thank you for the quick clarification! I apologize for the confusion
> > regarding the GitHub mirror.
> >
> > Since I am new to the GCC contribution workflow, I have generated a
> > proper
> > patch file using git format-patch for the fixes I made in
> > `gcc/analyzer/engine.cc` (resolving the ambiguous exploded_cluster
> > and
> > dump_args_t type mismatches).
> >
> > Here is the inline patch for review:
>
> Hi Zeinab; thanks for the analyzer patch.
>
> BTW, if you're hoping to participate in GSoC 2026 I'm afraid you're too
> late; the deadline for student applications was March 31st.  That said,
> if you still want to contribute to GCC outside of GSoC, you're most
> welcome.  You should read the contributing guidelines on our website.
> In particular, patches should have ChangeLog messages as part of their
> commit message.
>
> What warnings were you seeing on the unpatched version of this code,
> and with which compiler?  What was the ambiguity you saw?  IIRC
> everything here is in the "ana" namespace, so I'm not sure why e.g.
> exploded_cluster would be ambiguous.
>
> Thanks
> Dave
>
>
> >
> > From 66c4502ecc4254060122e212919fbdd4bc7570fd Mon Sep 17 00:00:00
> > 2001
> > From: Zeinab Ayman Elshinnawy <[email protected]>
> > Date: Mon, 18 May 2026 16:35:10 +0300
> > Subject: [PATCH 11/11] analyzer: fix ambiguous exploded_cluster and
> >  dump_args_t type overrides
> >
> > ---
> >  gcc/analyzer/engine.cc | 10 +++++-----
> >  1 file changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/gcc/analyzer/engine.cc b/gcc/analyzer/engine.cc
> > index 907a36af5..de5758341 100644
> > --- a/gcc/analyzer/engine.cc
> > +++ b/gcc/analyzer/engine.cc
> > @@ -3927,14 +3927,14 @@ class exploded_cluster : public
> > cluster<eg_traits>
> >
> >  /* Cluster containing all exploded_node instances for one supernode.
> > */
> >
> > -class supernode_cluster : public exploded_cluster
> > +class supernode_cluster : public ana::exploded_cluster
> >  {
> >  public:
> >    supernode_cluster (const supernode *supernode) : m_supernode
> > (supernode)
> > {}
> >
> >    // TODO: dtor?
> >
> > - void dump_dot (graphviz_out *gv, const dump_args_t &args) const
> > final
> > override
> > + void dump_dot (graphviz_out *gv, const
> > dnode<ana::eg_traits>::dump_args_t
> > &args) const final override
> >    {
> >      gv->println ("subgraph \"cluster_supernode_%i\" {", m_supernode-
> > >m_id);
> >      gv->indent ();
> > @@ -3977,7 +3977,7 @@ private:
> >  /* Cluster containing all supernode_cluster instances for one
> >     (function, call_string) pair. */
> >
> > -class function_call_string_cluster : public exploded_cluster
> > +class function_call_string_cluster : public ana::exploded_cluster
> >  {
> >  public:
> >    function_call_string_cluster (function *fun, const call_string
> > &cs)
> > @@ -3991,7 +3991,7 @@ public:
> >         delete (*iter).second;
> >    }
> >
> > - void dump_dot (graphviz_out *gv, const dump_args_t &args) const
> > final
> > override
> > + void dump_dot (graphviz_out *gv, const
> > dnode<ana::eg_traits>::dump_args_t
> > &args) const final override
> >    {
> >      const char *funcname = function_name (m_fun);
> >
> > @@ -4140,7 +4140,7 @@ public:
> >         delete (*iter).second;
> >    }
> >
> > - void dump_dot (graphviz_out *gv, const dump_args_t &args) const
> > final
> > override
> > + void dump_dot (graphviz_out *gv, const
> > dnode<ana::eg_traits>::dump_args_t
> > &args) const final override
> >    {
> >      int i;
> >      exploded_node *enode;
> > --
> > 2.53.0
> >
> > في الاثنين، ١٨ مايو ٢٠٢٦ ٣:٣٠ م Zeinab Ayman <[email protected]>
> > كتب:
> >
> > > Hello GCC Community and GSoC Mentors,
> > >
> > > My name is Zeinab Ayman, a Computer Engineering student preparing a
> > > proposal for GSoC 2026.
> > >
> > > As part of getting familiar with the GCC codebase and showcasing my
> > > skills, I have worked on fixing a set of compiler warnings across
> > > diagnostics, text-art, and analyzer modules (including -Wformat-
> > > diag,
> > > -Wmaybe-uninitialized, and -Wdelete-non-virtual-dtor).
> > >
> > > Since I am using GitHub to manage my workflow, I have submitted the
> > > patch
> > > as a Pull Request on the mirror repository here:
> > > https://github.com/gcc-mirror/gcc/pull/127
> > >
> > >   You can also check my GitHub profile here:
> > > https://github.com/zeinab304
> > >
> > > I would highly appreciate it if mentors could review these fixes. I
> > > am
> > > looking forward to contributing more and finalizing my GSoC
> > > proposal
> > > document.
> > >
> > > Best regards,
> > > Zeinab Ayman
> > >
> >
>
>

Reply via email to