From: Jason Merrill Date: Mon, 21 Sep 2009 16:11:26 +0000 (-0400) Subject: re PR c++/41421 ([C++0x] Trivial types should require trivial default constructor.) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=334738b440a3f7eb2b1b488c2f4fbac88bd85ca9;p=gcc.git re PR c++/41421 ([C++0x] Trivial types should require trivial default constructor.) PR c++/41421 * tree.c (trivial_type_p): Fix logic. From-SVN: r151932 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 76295156581..d2fa331b9bd 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2009-09-21 Jason Merrill + + PR c++/41421 + * tree.c (trivial_type_p): Fix logic. + 2009-09-21 Jason Merrill * name-lookup.c (push_class_level_binding): Sanity check. diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index 51752a3f040..fb812e23303 100644 --- a/gcc/cp/tree.c +++ b/gcc/cp/tree.c @@ -2323,10 +2323,10 @@ trivial_type_p (const_tree t) t = strip_array_types (CONST_CAST_TREE (t)); if (CLASS_TYPE_P (t)) - return !(TYPE_HAS_COMPLEX_DFLT (t) - || TYPE_HAS_COMPLEX_INIT_REF (t) - || TYPE_HAS_COMPLEX_ASSIGN_REF (t) - || TYPE_HAS_NONTRIVIAL_DESTRUCTOR (t)); + return (TYPE_HAS_TRIVIAL_DFLT (t) + && TYPE_HAS_TRIVIAL_INIT_REF (t) + && TYPE_HAS_TRIVIAL_ASSIGN_REF (t) + && TYPE_HAS_TRIVIAL_DESTRUCTOR (t)); else return scalarish_type_p (t); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 89f787a2e12..2df641b4fb1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2009-09-21 Jason Merrill + + PR c++/41421 + * g++.dg/cpp0x/trivial1.C: Expand. + 2009-09-21 Kai Tietz * gcc.dg/torture/calleesave-sse.c: New. diff --git a/gcc/testsuite/g++.dg/cpp0x/trivial1.C b/gcc/testsuite/g++.dg/cpp0x/trivial1.C index 62173ac0caf..109c8ccdbd4 100644 --- a/gcc/testsuite/g++.dg/cpp0x/trivial1.C +++ b/gcc/testsuite/g++.dg/cpp0x/trivial1.C @@ -80,3 +80,7 @@ struct K { }; struct L: virtual K {}; YES(K); NO(L); + +// PR c++/41421 +struct O { O(int); }; +NO(O);