re PR c++/42837 (FAIL: g++.dg/abi/packed1.C execution test)

PR c++/42837
	* class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.

From-SVN: r156885
This commit is contained in:
Jason Merrill 2010-02-18 20:16:28 -05:00 committed by Jason Merrill
parent 8154a82680
commit 7c08df6c1e
4 changed files with 9 additions and 1 deletions

View File

@ -1,5 +1,8 @@
2010-02-18 Jason Merrill <jason@redhat.com>
PR c++/42837
* class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
PR c++/43108
* typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
C build_binary_op.

View File

@ -4554,6 +4554,8 @@ create_vtable_ptr (tree t, tree* virtuals_p)
DECL_ARTIFICIAL (field) = 1;
DECL_FIELD_CONTEXT (field) = t;
DECL_FCONTEXT (field) = t;
if (TYPE_PACKED (t))
DECL_PACKED (field) = 1;
TYPE_VFIELD (t) = field;

View File

@ -1,5 +1,8 @@
2010-02-18 Jason Merrill <jason@redhat.com>
PR c++/42837
* g++.dg/abi/packed1.C: Add expected warning.
PR c++/43108
* g++.dg/torture/dg-torture.exp: Run c-c++-common torture tests.
* gcc.dg/torture/dg-torture.exp: Likewise.

View File

@ -4,7 +4,7 @@
extern "C" void abort ();
struct INNER {
struct INNER { // { dg-warning "inefficient.*vptr" "" { target ia64-*-* hppa*-*-* } }
virtual int foo() const { return 1; }
} __attribute__ ((packed));