re PR c++/78344 (ICE on invalid c++ code on x86_64-linux-gnu (internal compiler error: tree check: expected tree_list, have error_mark in cp_check_const_attributes, at cp/decl2.c:1347))
/cp 2018-01-17 Paolo Carlini <paolo.carlini@oracle.com> PR c++/78344 * decl.c (grokdeclarator): Do not append the error_mark_node due to an erroneous optional attribute-specifier-seq. /testsuite 2018-01-17 Paolo Carlini <paolo.carlini@oracle.com> PR c++/78344 * g++.dg/cpp0x/alignas13.C: New. From-SVN: r256821
This commit is contained in:
parent
06b6c63064
commit
a533fc7635
4 changed files with 25 additions and 3 deletions
|
@ -1,3 +1,9 @@
|
|||
2018-01-17 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/78344
|
||||
* decl.c (grokdeclarator): Do not append the error_mark_node
|
||||
due to an erroneous optional attribute-specifier-seq.
|
||||
|
||||
2018-01-17 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/83897
|
||||
|
|
|
@ -11491,9 +11491,15 @@ grokdeclarator (const cp_declarator *declarator,
|
|||
&& declarator->kind == cdk_id
|
||||
&& declarator->std_attributes
|
||||
&& attrlist != NULL)
|
||||
/* [dcl.meaning]/1: The optional attribute-specifier-seq following
|
||||
a declarator-id appertains to the entity that is declared. */
|
||||
*attrlist = chainon (*attrlist, declarator->std_attributes);
|
||||
{
|
||||
/* [dcl.meaning]/1: The optional attribute-specifier-seq following
|
||||
a declarator-id appertains to the entity that is declared. */
|
||||
if (declarator->std_attributes != error_mark_node)
|
||||
*attrlist = chainon (*attrlist, declarator->std_attributes);
|
||||
else
|
||||
/* We should have already diagnosed the issue (c++/78344). */
|
||||
gcc_assert (seen_error ());
|
||||
}
|
||||
|
||||
/* Handle parameter packs. */
|
||||
if (parameter_pack_p)
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2018-01-17 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/78344
|
||||
* g++.dg/cpp0x/alignas13.C: New.
|
||||
|
||||
2018-01-17 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/83897
|
||||
|
|
5
gcc/testsuite/g++.dg/cpp0x/alignas13.C
Normal file
5
gcc/testsuite/g++.dg/cpp0x/alignas13.C
Normal file
|
@ -0,0 +1,5 @@
|
|||
// PR c++/78344
|
||||
// { dg-do compile { target c++11 } }
|
||||
|
||||
alignas(double) int f alignas; // { dg-error "30:expected '\\('" }
|
||||
alignas(double) int g alignas(double; // { dg-error "37:expected '\\)'" }
|
Loading…
Add table
Reference in a new issue