@@ -1207,6 +1207,8 @@ constructible_expr (tree to, tree from)
bool
is_trivially_xible (enum tree_code code, tree to, tree from)
{
+ if (TYPE_MAIN_VARIANT (to) == void_type_node)
+ return false;
tree expr;
if (code == MODIFY_EXPR)
expr = assignable_expr (to, from);
@@ -27,10 +27,18 @@ SA(!__is_trivially_constructible(C,C&));
SA(__is_trivially_assignable(C,C&));
SA(!__is_trivially_assignable(C,C));
SA(!__is_trivially_assignable(C,C&&));
+SA(!__is_trivially_assignable(void,int));
+SA(!__is_trivially_assignable(const void,int));
+SA(!__is_trivially_assignable(volatile void,int));
+SA(!__is_trivially_assignable(const volatile void,int));
SA(__is_trivially_constructible(int,int));
SA(__is_trivially_constructible(int,double));
SA(!__is_trivially_constructible(int,B));
+SA(!__is_trivially_constructible(void,int));
+SA(!__is_trivially_constructible(const void,int));
+SA(!__is_trivially_constructible(volatile void,int));
+SA(!__is_trivially_constructible(const volatile void,int));
SA(!__is_trivially_constructible(D));