re PR c++/41421 ([C++0x] Trivial types should require trivial default constructor.)
authorJason Merrill <jason@redhat.com>
Mon, 21 Sep 2009 16:11:26 +0000 (12:11 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Mon, 21 Sep 2009 16:11:26 +0000 (12:11 -0400)
PR c++/41421
* tree.c (trivial_type_p): Fix logic.

From-SVN: r151932

gcc/cp/ChangeLog
gcc/cp/tree.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp0x/trivial1.C

index 76295156581d644b08709186d44bcae512be98ed..d2fa331b9bdfe79725f45e0565868d5408137dc4 100644 (file)
@@ -1,3 +1,8 @@
+2009-09-21  Jason Merrill  <jason@redhat.com>
+
+       PR c++/41421
+       * tree.c (trivial_type_p): Fix logic.
+
 2009-09-21  Jason Merrill  <jason@redhat.com>
 
        * name-lookup.c (push_class_level_binding): Sanity check.
index 51752a3f040ea5f25e346a30a1b712969753404e..fb812e23303ba71a6c504f2ab1e3bf00f3ebf3fd 100644 (file)
@@ -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);
 }
index 89f787a2e121afec9db881fa55fd5230fcbf1a79..2df641b4fb1dbcb3cb3b941ec4a21919ae640e63 100644 (file)
@@ -1,3 +1,8 @@
+2009-09-21  Jason Merrill  <jason@redhat.com>
+
+       PR c++/41421
+       * g++.dg/cpp0x/trivial1.C: Expand.
+
 2009-09-21  Kai Tietz  <kai.tietz@onevision.com>
 
        * gcc.dg/torture/calleesave-sse.c: New.
index 62173ac0caf128f60058a1ff2b3dc752c5411abd..109c8ccdbd4a078e6f292c9cd20731d0e3ddfb5c 100644 (file)
@@ -80,3 +80,7 @@ struct K { };
 struct L: virtual K {};
 YES(K);
 NO(L);
+
+// PR c++/41421
+struct O { O(int); };
+NO(O);