mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-10 07:10:27 +08:00
re PR c++/51431 (ICE with invalid use of abstract class)
/cp 2011-12-06 Paolo Carlini <paolo.carlini@oracle.com> PR c++/51431 * init.c (build_value_init): Check build_aggr_init_expr return value for error_mark_node. /testsuite 2011-12-06 Paolo Carlini <paolo.carlini@oracle.com> PR c++/51431 * g++.dg/other/abstract3.C: New. From-SVN: r182055
This commit is contained in:
parent
62b547b5f6
commit
66403b3862
@ -1,3 +1,9 @@
|
||||
2011-12-06 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/51431
|
||||
* init.c (build_value_init): Check build_aggr_init_expr return
|
||||
value for error_mark_node.
|
||||
|
||||
2011-12-06 Dodji Seketeli <dodji@redhat.com>
|
||||
|
||||
PR c++/51427
|
||||
|
@ -359,11 +359,9 @@ build_value_init (tree type, tsubst_flags_t complain)
|
||||
tree ctor = build_special_member_call
|
||||
(NULL_TREE, complete_ctor_identifier,
|
||||
NULL, type, LOOKUP_NORMAL, complain);
|
||||
ctor = build_aggr_init_expr (type, ctor, complain);
|
||||
if (ctor != error_mark_node)
|
||||
{
|
||||
ctor = build_aggr_init_expr (type, ctor, complain);
|
||||
AGGR_INIT_ZERO_FIRST (ctor) = 1;
|
||||
}
|
||||
AGGR_INIT_ZERO_FIRST (ctor) = 1;
|
||||
return ctor;
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,8 @@
|
||||
2011-12-06 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/51431
|
||||
* g++.dg/other/abstract3.C: New.
|
||||
|
||||
2011-12-06 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/49997
|
||||
|
12
gcc/testsuite/g++.dg/other/abstract3.C
Normal file
12
gcc/testsuite/g++.dg/other/abstract3.C
Normal file
@ -0,0 +1,12 @@
|
||||
// PR c++/51431
|
||||
|
||||
struct A // { dg-message "note" }
|
||||
{
|
||||
virtual void foo() = 0; // { dg-message "note" }
|
||||
};
|
||||
|
||||
struct B
|
||||
{
|
||||
A a; // { dg-error "abstract" }
|
||||
B() : a() {} // { dg-error "abstract" }
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user