This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [C++ Patch] PR 34758


Hi,
> !       if (parmnum != 0 || TREE_CHAIN (parm) != void_list_node)
>
> I don't understand this conditional.  Why does it matter whether we're
> looking at the first argument or not?
>   
Oh, well, that's only a "cosmetic" issue: for testcases like the one in
the PR, when there is only *one* parameter, the errror message is more
neat.... Actually, I was under the impression that this specific nit was
a large part of the PR...
> Also, I'm not sure I agree that "circular dependency" is a very clear
> way to explain this problem.  If I recall correctly, there doesn't
> actually have to be a circular dependency to make the code invalid.
>
> In particular, if the default argument tried to invoke a method with
> default arguments declared later in the class, I think we would have
> trouble too:
>
>   struct S {
>     S(const S& = f());
>     static const S& f(int i = 3);
>   };
>
> So, I'm not actually sure what's wrong with the current message.  I
> think it explains the problem reasonably well.
>   
I see... we can also close the PR as invalid ;) But, I'm not sure about
the first issue above...

Paolo.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]