re PR c++/84588 (internal compiler error: Segmentation fault (contains_struct_check()))
authorPaolo Carlini <paolo.carlini@oracle.com>
Mon, 21 May 2018 19:25:50 +0000 (19:25 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Mon, 21 May 2018 19:25:50 +0000 (19:25 +0000)
commit18759120664263a56fa993f5501cbe674383c3ef
tree11692eed301ed0825ad27370dcef0b4ccf3c2482
parentb3229fe17f103d8f1a36f15ab2734361d660b0c8
re PR c++/84588 (internal compiler error: Segmentation fault (contains_struct_check()))

/cp
2018-05-21  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84588
* parser.c (cp_parser_maybe_commit_to_declaration,
cp_parser_check_condition_declarator): New.
(cp_parser_simple_declaration): Use the first above.
(cp_parser_condition): Use both the above; enforce
[stmt.stmt]/2 about the declarator not specifying
a function or an array; improve error-recovery.

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

PR c++/84588
* g++.dg/cpp0x/cond1.C: New.
* g++.dg/cpp1y/pr84588-1.C: Likewise.
* g++.dg/cpp1y/pr84588-2.C: Likewise.
* g++.dg/cpp1y/pr84588-3.C: Likewise.
* g++.dg/parse/cond6.C: Likewise.
* g++.dg/parse/cond7.C: Likewise.
* g++.dg/parse/cond8.C: Likewise.
* g++.dg/cpp1z/decomp16.C: Update.
* g++.old-deja/g++.jason/cond.C: Likewise.

From-SVN: r260482
12 files changed:
gcc/cp/ChangeLog
gcc/cp/parser.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp0x/cond1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp1y/pr84588-1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp1y/pr84588-2.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp1y/pr84588-3.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp1z/decomp16.C
gcc/testsuite/g++.dg/parse/cond6.C [new file with mode: 0644]
gcc/testsuite/g++.dg/parse/cond7.C [new file with mode: 0644]
gcc/testsuite/g++.dg/parse/cond8.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.jason/cond.C