This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [C++ Patch] PR 82293 ("[8 Regression] ICE in nonlambda_method_basetype at gcc/cp/lambda.c:886")
- From: Jason Merrill <jason at redhat dot com>
- To: Paolo Carlini <paolo dot carlini at oracle dot com>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>, Nathan Sidwell <nathan at acm dot org>
- Date: Wed, 29 Nov 2017 16:16:38 -0500
- Subject: Re: [C++ Patch] PR 82293 ("[8 Regression] ICE in nonlambda_method_basetype at gcc/cp/lambda.c:886")
- Authentication-results: sourceware.org; auth=none
- References: <a1c6dfd0-7807-5320-ec59-99ae8fb4e0db@oracle.com>
OK.
On Wed, Nov 22, 2017 at 9:49 AM, Paolo Carlini <paolo.carlini@oracle.com> wrote:
> Hi,
>
> this ICE on valid is triggered by the existing cpp0x/lambda/lambda-ice20.C
> when -Wshadow is requested. Today I confirmed that it can be reproduced only
> after r251433, the "Reimplement handling of lambdas in templates." patch:
> then, as part of tsubst_lambda_expr, do_pushdecl calls check_local_shadow
> which in turn checks nonlambda_method_basetype and at that time
> current_class_type is null. I believe this is just something which we have
> to handle in the obvious way: indeed, most other uses of LAMBDA_TYPE_P are
> already checking first that the argument is non-null, see, for example, the
> related current_nonlambda_class_type. Tested x86_64-linux.
>
> Thanks, Paolo.
>
> ///////////////////////
>
>