diff options
-rw-r--r-- | gcc/cp/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/cp/cvt.c | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 06109bf..a8bff85 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2003-04-03 Jason Merrill <jason@redhat.com> + * cvt.c (ocp_convert): Only abort if we try to convert an object + of TREE_ADDRESSABLE type. + * class.c (build_vtable): Set DECL_ALIGN here. (get_vtable_decl): Not here. (layout_vtable_decl): Or here. diff --git a/gcc/cp/cvt.c b/gcc/cp/cvt.c index 19bca82..c62edf0 100644 --- a/gcc/cp/cvt.c +++ b/gcc/cp/cvt.c @@ -647,7 +647,8 @@ ocp_convert (tree type, tree expr, int convtype, int flags) TREE_TYPE (e) = TREE_TYPE (TARGET_EXPR_SLOT (e)) = type; return e; } - else if (CLASS_TYPE_P (type)) + else if (TREE_ADDRESSABLE (type)) + /* We shouldn't be treating objects of ADDRESSABLE type as rvalues. */ abort (); else return fold (build1 (NOP_EXPR, type, e)); |