+2014-09-20 Jason Merrill <jason@redhat.com>
+
+ PR c++/62017
+ * decl.c (begin_destructor_body): Only clobber the as-base part of
+ *this.
+
2014-09-19 Jason Merrill <jason@redhat.com>
PR c++/61392
/* Insert a cleanup to let the back end know that the object is dead
when we exit the destructor, either normally or via exception. */
- tree clobber = build_constructor (current_class_type, NULL);
+ tree btype = CLASSTYPE_AS_BASE (current_class_type);
+ tree clobber = build_constructor (btype, NULL);
TREE_THIS_VOLATILE (clobber) = true;
- tree exprstmt = build2 (MODIFY_EXPR, current_class_type,
- current_class_ref, clobber);
+ tree bref = build_nop (build_reference_type (btype), current_class_ptr);
+ bref = convert_from_reference (bref);
+ tree exprstmt = build2 (MODIFY_EXPR, btype, bref, clobber);
finish_decl_cleanup (NULL_TREE, exprstmt);
/* And insert cleanups for our bases and members so that they