Bug 85713 - [9 Regression] ICE in dependent_type_p, at cp/pt.c:24582 on valid code
Summary: [9 Regression] ICE in dependent_type_p, at cp/pt.c:24582 on valid code
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: c++ (show other bugs)
Version: 9.0
: P3 normal
Target Milestone: 9.0
Assignee: Paolo Carlini
URL:
Keywords: ice-on-valid-code
Depends on:
Blocks:
 
Reported: 2018-05-09 13:47 UTC by Martin Liška
Modified: 2018-05-17 09:18 UTC (History)
0 users

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2018-05-09 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Liška 2018-05-09 13:47:19 UTC
Starting from r260050 we ICE on:

$ ./xg++ -B. /home/marxin/BIG/Programming/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p3-generic-lambda-1y.cpp
/home/marxin/BIG/Programming/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p3-generic-lambda-1y.cpp: In function ‘int main()’:
/home/marxin/BIG/Programming/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p3-generic-lambda-1y.cpp:37:20: internal compiler error: in dependent_type_p, at cp/pt.c:24582
               ) -> int { return v + i + c
                    ^~~
0x83a1ab dependent_type_p(tree_node*)
	../../gcc/cp/pt.c:24582
0x6beb68 require_complete_types_for_parms
	../../gcc/cp/decl.c:12571
0x6beb68 check_function_type
	../../gcc/cp/decl.c:14743
0x6beb68 start_preparsed_function(tree_node*, tree_node*, int)
	../../gcc/cp/decl.c:14959
0x728ab4 start_lambda_function(tree_node*, tree_node*)
	../../gcc/cp/lambda.c:1393
0x779148 cp_parser_lambda_body
	../../gcc/cp/parser.c:10656
0x777d36 cp_parser_lambda_expression
	../../gcc/cp/parser.c:10170
0x76d154 cp_parser_primary_expression
	../../gcc/cp/parser.c:5263
0x771190 cp_parser_postfix_expression
	../../gcc/cp/parser.c:7005
0x7747ae cp_parser_unary_expression
	../../gcc/cp/parser.c:8300
0x7758c0 cp_parser_cast_expression
	../../gcc/cp/parser.c:9068
0x7759bd cp_parser_binary_expression
	../../gcc/cp/parser.c:9169
0x77679a cp_parser_assignment_expression
	../../gcc/cp/parser.c:9464
0x776fad cp_parser_constant_expression
	../../gcc/cp/parser.c:9748
0x78f225 cp_parser_initializer_clause
	../../gcc/cp/parser.c:21927
0x78f043 cp_parser_initializer
	../../gcc/cp/parser.c:21867
0x78abe0 cp_parser_init_declarator
	../../gcc/cp/parser.c:19678
0x77e300 cp_parser_simple_declaration
	../../gcc/cp/parser.c:13038
0x77de43 cp_parser_block_declaration
	../../gcc/cp/parser.c:12857
0x77d23d cp_parser_declaration_statement
	../../gcc/cp/parser.c:12451

Where the file can be downloaded here:

https://github.com/llvm-mirror/clang/blob/master/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p3-generic-lambda-1y.cpp
Comment 1 Paolo Carlini 2018-05-09 16:10:25 UTC
Too bad. Anyway, c++/84588 is just a minor error-recovery issue, thus for now I'm simply reverting the commit.
Comment 2 paolo@gcc.gnu.org 2018-05-09 16:18:08 UTC
Author: paolo
Date: Wed May  9 16:17:36 2018
New Revision: 260086

URL: https://gcc.gnu.org/viewcvs?rev=260086&root=gcc&view=rev
Log:
/cp
2018-05-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/85713
	Revert:
	2018-05-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84588
	* parser.c (cp_parser_parameter_declaration_list): When the
	entire parameter-declaration-list is erroneous maybe call
	abort_fully_implicit_template.

/testsuite
2018-05-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/85713
	Revert:
	2018-05-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84588
	* g++.dg/cpp1y/pr84588.C: New.

Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/parser.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/g++.dg/cpp1y/pr84588.C
Comment 3 Paolo Carlini 2018-05-09 16:19:40 UTC
Done.
Comment 4 paolo@gcc.gnu.org 2018-05-09 16:19:41 UTC
Author: paolo
Date: Wed May  9 16:19:09 2018
New Revision: 260087

URL: https://gcc.gnu.org/viewcvs?rev=260087&root=gcc&view=rev
Log:
/cp
2018-05-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/85713
	Revert:
	2018-05-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84588
	* parser.c (cp_parser_parameter_declaration_list): When the
	entire parameter-declaration-list is erroneous maybe call
	abort_fully_implicit_template.

/testsuite
2018-05-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/85713
	Revert:
	2018-05-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84588
	* g++.dg/cpp1y/pr84588.C: New.

Removed:
    trunk/gcc/testsuite/g++.dg/cpp1y/pr84588.C
Comment 5 Paolo Carlini 2018-05-09 16:27:41 UTC
.
Comment 6 paolo@gcc.gnu.org 2018-05-09 19:47:22 UTC
Author: paolo
Date: Wed May  9 19:46:47 2018
New Revision: 260092

URL: https://gcc.gnu.org/viewcvs?rev=260092&root=gcc&view=rev
Log:
2018-05-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/85713
	* g++.dg/cpp1y/lambda-generic-85713.C: New.

Added:
    trunk/gcc/testsuite/g++.dg/cpp1y/lambda-generic-85713.C
Modified:
    trunk/gcc/testsuite/ChangeLog
Comment 7 Paolo Carlini 2018-05-09 19:48:40 UTC
Was in fact a serious ICE on valid, I added a minimized testcase.
Comment 8 paolo@gcc.gnu.org 2018-05-17 09:18:29 UTC
Author: paolo
Date: Thu May 17 09:17:56 2018
New Revision: 260308

URL: https://gcc.gnu.org/viewcvs?rev=260308&root=gcc&view=rev
Log:
2018-05-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/85713
	* g++.dg/cpp1y/lambda-generic-85713-2.C: New.

Added:
    trunk/gcc/testsuite/g++.dg/cpp1y/lambda-generic-85713-2.C
Modified:
    trunk/gcc/testsuite/ChangeLog