Upstream-Status: Inappropriate [Backport] From 065054b0b29c40548abd13c272431507d035b30a Mon Sep 17 00:00:00 2001 From: jason Date: Mon, 18 Apr 2011 23:29:30 +0000 Subject: [PATCH 144/200] PR c++/48537 * init.c (build_value_init): Handle UNION_TYPE the same. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@172679 138bc75d-0d04-0410-961f-82ee72b054a4 index e1961c8..4798257 100644 --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -343,7 +343,7 @@ build_value_init (tree type, tsubst_flags_t complain) build_special_member_call (NULL_TREE, complete_ctor_identifier, NULL, type, LOOKUP_NORMAL, complain)); - else if (TREE_CODE (type) != UNION_TYPE && TYPE_NEEDS_CONSTRUCTING (type)) + else if (TYPE_NEEDS_CONSTRUCTING (type)) { /* This is a class that needs constructing, but doesn't have a user-provided constructor. So we need to zero-initialize new file mode 100644 index 0000000..0705047 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/union4.C @@ -0,0 +1,17 @@ +// PR c++/48537 +// { dg-options -std=c++0x } + +struct SFoo +{ + SFoo() =delete; // { dg-error "declared" } +}; + +union UFoo // { dg-error "deleted" } +{ + SFoo foo; +}; + +int main() +{ + UFoo(); // { dg-error "deleted" } +} -- 1.7.0.4