re PR c++/32158 (uninitialized_fill compile failure if no default assignment operator)
gcc/cp 2007-05-31 Paolo Carlini <pcarlini@suse.de> PR c++/32158 * semantics.c (finish_trait_expr): Complete the types. gcc/testsuite 2007-05-31 Paolo Carlini <pcarlini@suse.de> PR c++/32158 * g++.dg/ext/is_pod_incomplete.C: New. From-SVN: r125217
This commit is contained in:
parent
fdecbf8070
commit
10c1d4af2f
4 changed files with 24 additions and 2 deletions
|
@ -1,3 +1,8 @@
|
|||
2007-05-31 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
PR c++/32158
|
||||
* semantics.c (finish_trait_expr): Complete the types.
|
||||
|
||||
2007-05-30 Russell Yanofsky <russ@yanofsky.org>
|
||||
Douglas Gregor <doug.gregor@gmail.com>
|
||||
Pedro Lamarao <pedro.lamarao@mndfck.org>
|
||||
|
|
|
@ -4177,11 +4177,15 @@ finish_trait_expr (cp_trait_kind kind, tree type1, tree type2)
|
|||
return trait_expr;
|
||||
}
|
||||
|
||||
complete_type (type1);
|
||||
if (type2)
|
||||
complete_type (type2);
|
||||
|
||||
/* The only required diagnostic. */
|
||||
if (kind == CPTK_IS_BASE_OF
|
||||
&& NON_UNION_CLASS_TYPE_P (type1) && NON_UNION_CLASS_TYPE_P (type2)
|
||||
&& !same_type_ignoring_top_level_qualifiers_p (type1, type2)
|
||||
&& !COMPLETE_TYPE_P (complete_type (type2)))
|
||||
&& !COMPLETE_TYPE_P (type2))
|
||||
{
|
||||
error ("incomplete type %qT not allowed", type2);
|
||||
return error_mark_node;
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
2007-05-31 Paul Thomas <pault@gcc.gnu.org>
PR fortran/32103
* gfortran.dg/module_equivalence_3.f90: New test.
2007-05-30 Russell Yanofsky <russ@yanofsky.org>
|
||||
2007-05-31 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
PR c++/32158
|
||||
* g++.dg/ext/is_pod_incomplete.C: New.
|
||||
|
||||
2007-05-31 Russell Yanofsky <russ@yanofsky.org>
|
||||
Douglas Gregor <doug.gregor@gmail.com>
|
||||
Pedro Lamarao <pedro.lamarao@mndfck.org>
|
||||
Howard Hinnant <howard.hinnant@gmail.com>
|
||||
|
|
8
gcc/testsuite/g++.dg/ext/is_pod_incomplete.C
Normal file
8
gcc/testsuite/g++.dg/ext/is_pod_incomplete.C
Normal file
|
@ -0,0 +1,8 @@
|
|||
// PR c++/32158
|
||||
template<typename T>
|
||||
struct A
|
||||
{
|
||||
A() { }
|
||||
};
|
||||
|
||||
int t[__is_pod(A<int>)?-1:1];
|
Loading…
Add table
Reference in a new issue