diff options
author | Jason Merrill <jason@redhat.com> | 2004-09-29 02:23:49 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2004-09-29 02:23:49 -0400 |
commit | 550f100c572c857db7f7cae4339143b195de6b5a (patch) | |
tree | fd24483a463c1c2221cb897dae5a9621363fa39f /gcc | |
parent | aa24864c2389a86dbba4e0a04c3eb0a3c14d10d9 (diff) | |
download | gcc-550f100c572c857db7f7cae4339143b195de6b5a.zip gcc-550f100c572c857db7f7cae4339143b195de6b5a.tar.gz gcc-550f100c572c857db7f7cae4339143b195de6b5a.tar.bz2 |
re PR middle-end/17525 (ICE in emit_move_insn (non-BLKmode arg))
PR middle-end/17525
* class.c (build_base_field): Set TYPE_MODE.
From-SVN: r88270
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/class.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/init/synth1.C | 17 |
3 files changed, 23 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 9eed9186..5444a09 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2004-09-28 Jason Merrill <jason@redhat.com> + + PR middle-end/17525 + * class.c (build_base_field): Set TYPE_MODE. + 2004-09-28 Roger Sayle <roger@eyesopen.com> PR driver/17537 diff --git a/gcc/cp/class.c b/gcc/cp/class.c index deff573..b3d5d96 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -3563,6 +3563,7 @@ build_base_field (record_layout_info rli, tree binfo, DECL_SIZE_UNIT (decl) = CLASSTYPE_SIZE_UNIT (basetype); DECL_ALIGN (decl) = CLASSTYPE_ALIGN (basetype); DECL_USER_ALIGN (decl) = CLASSTYPE_USER_ALIGN (basetype); + DECL_MODE (decl) = TYPE_MODE (basetype); DECL_IGNORED_P (decl) = 1; DECL_FIELD_IS_BASE (decl) = 1; diff --git a/gcc/testsuite/g++.dg/init/synth1.C b/gcc/testsuite/g++.dg/init/synth1.C new file mode 100644 index 0000000..6c00bc0 --- /dev/null +++ b/gcc/testsuite/g++.dg/init/synth1.C @@ -0,0 +1,17 @@ +// PR middle-end/17525 + +struct A +{ + ~A(); + int a; +}; + +struct B : public A +{ + virtual ~B(); +}; + +void run (B& b, B& b1) +{ + b1 = b; +} |