PR c++/51473 - ICE with invalid auto
gcc/cp/ PR c++/51473 * decl.c (check_tag_decl): Error out on auto specifier with no declarator. gcc/testsuite/ PR c++/51473 * g++.dg/cpp0x/auto30.C: New test. From-SVN: r182375
This commit is contained in:
parent
90376fadb8
commit
f03e689a9d
4 changed files with 26 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
2011-12-15 Dodji Seketeli <dodji@redhat.com>
|
||||
|
||||
PR c++/51473
|
||||
* decl.c (check_tag_decl): Error out on auto specifier with no
|
||||
declarator.
|
||||
|
||||
2011-12-15 Jonathan Wakely <jwakely.gcc@gmail.com>
|
||||
|
||||
PR libstdc++/51365
|
||||
|
|
|
@ -4140,6 +4140,12 @@ check_tag_decl (cp_decl_specifier_seq *declspecs)
|
|||
error_p = true;
|
||||
if (declared_type == NULL_TREE && ! saw_friend && !error_p)
|
||||
permerror (input_location, "declaration does not declare anything");
|
||||
else if (declared_type != NULL_TREE && type_uses_auto (declared_type))
|
||||
{
|
||||
error ("%<auto%> can only be specified for variables "
|
||||
"or function declarations");
|
||||
return error_mark_node;
|
||||
}
|
||||
/* Check for an anonymous union. */
|
||||
else if (declared_type && RECORD_OR_UNION_CODE_P (TREE_CODE (declared_type))
|
||||
&& TYPE_ANONYMOUS_P (declared_type))
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2011-12-15 Dodji Seketeli <dodji@redhat.com>
|
||||
|
||||
PR c++/51473
|
||||
* g++.dg/cpp0x/auto30.C: New test.
|
||||
|
||||
2011-12-15 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
* gfortran.dg/coarray/poly_run_3.f90: New.
|
||||
|
|
9
gcc/testsuite/g++.dg/cpp0x/auto30.C
Normal file
9
gcc/testsuite/g++.dg/cpp0x/auto30.C
Normal file
|
@ -0,0 +1,9 @@
|
|||
// Origin PR c++/51473
|
||||
// { dg-options "-std=c++11" }
|
||||
|
||||
struct A
|
||||
{
|
||||
auto friend struct B; // { dg-error "multiple types|can only be specified|friend" }
|
||||
};
|
||||
|
||||
auto int; // { dg-error "multiple types|can only be specified for variables" }
|
Loading…
Add table
Reference in a new issue