[Bug c++/81236] Crash when calling a template member function from generic lambda
jason at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Aug 30 01:14:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81236
--- Comment #5 from Jason Merrill <jason at gcc dot gnu.org> ---
Author: jason
Date: Tue Aug 29 21:38:21 2017
New Revision: 251438
URL: https://gcc.gnu.org/viewcvs?rev=251438&root=gcc&view=rev
Log:
PR c++/81236 - ICE with template-id in generic lambda
* semantics.c (finish_id_expression): Remove special dependent case.
Avoid some later pieces when dependent.
(finish_qualified_id_expr): Do normal BASELINK handling in a
template. Always build a SCOPE_REF for a destructor BIT_NOT_EXPR.
(parsing_default_capturing_generic_lambda_in_template): Remove.
* parser.c (cp_parser_postfix_dot_deref_expression): Always give an
error for types that will never be complete.
* mangle.c (write_expression): Add sanity check.
* tree.c (build_qualified_name): Add sanity check.
(cp_walk_subtrees): Walk into the class context of a BASELINK.
* lambda.c (add_capture): Improve diagnostic for generic lambda
capture failure.
* call.c (build_new_method_call_1): Print the right constructor
name.
Added:
trunk/gcc/testsuite/g++.dg/cpp1y/lambda-generic-this1.C
trunk/gcc/testsuite/g++.dg/cpp1y/lambda-generic-this1a.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
trunk/gcc/cp/lambda.c
trunk/gcc/cp/mangle.c
trunk/gcc/cp/parser.c
trunk/gcc/cp/semantics.c
trunk/gcc/cp/tree.c
trunk/gcc/testsuite/g++.dg/template/pseudodtor3.C
More information about the Gcc-bugs
mailing list