re PR c++/38636 (ICE with broken ctor declaration)
gcc/cp/ChangeLog: 2009-01-13 Dodji Seketeli <dodji@redhat.com> PR c++/38636 * name-lookup.c (pushtag): Don't create members to types that are not being created. gcc/testsuite/ChangeLog: 2009-01-13 Dodji Seketeli <dodji@redhat.com> PR c++/38636 * g++.dg/parse/crash50.C: New test. From-SVN: r143392
This commit is contained in:
parent
0196c95ed4
commit
0efc44420b
@ -1,3 +1,9 @@
|
||||
2009-01-15 Dodji Seketeli <dodji@redhat.com>
|
||||
|
||||
PR c++/38636
|
||||
* name-lookup.c (pushtag): Don't create members to types that are not
|
||||
being created.
|
||||
|
||||
2009-01-14 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR c++/37862
|
||||
|
||||
@ -5109,6 +5109,9 @@ pushtag (tree name, tree type, tag_scope scope)
|
||||
|
||||
if (b->kind == sk_class)
|
||||
{
|
||||
if (!TYPE_BEING_DEFINED (current_class_type))
|
||||
POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, error_mark_node);
|
||||
|
||||
if (!PROCESSING_REAL_TEMPLATE_DECL_P ())
|
||||
/* Put this TYPE_DECL on the TYPE_FIELDS list for the
|
||||
class. But if it's a member template class, we want
|
||||
|
||||
@ -1,3 +1,8 @@
|
||||
2009-01-15 Dodji Seketeli <dodji@redhat.com>
|
||||
|
||||
PR c++/38636
|
||||
* g++.dg/parse/crash50.C: New test.
|
||||
|
||||
2009-01-14 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR rtl-optimization/38245
|
||||
|
||||
10
gcc/testsuite/g++.dg/parse/crash50.C
Normal file
10
gcc/testsuite/g++.dg/parse/crash50.C
Normal file
@ -0,0 +1,10 @@
|
||||
// Contributed by Dodji Seketeli <dodji@redhat.com>
|
||||
// Origin PR c++/38636
|
||||
// { dg-do compile }
|
||||
|
||||
struct A; // { dg-error "forward declaration of 'struct A'" }
|
||||
|
||||
A::A(
|
||||
|
||||
struct B; // { dg-error "expected '\\)' before ';' token|invalid use of incomplete type 'struct A'" }
|
||||
|
||||
Loading…
Reference in New Issue
Block a user