This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: C++ PATHC: PR5571
- From: Mark Mitchell <mark at codesourcery dot com>
- To: Richard Kenner <kenner at vlsi1 dot ultra dot nyu dot edu>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 12 Apr 2002 15:11:02 -0700
- Subject: Re: C++ PATHC: PR5571
- References: <10204122039.AA25622@vlsi1.ultra.nyu.edu>
--On Friday, April 12, 2002 04:39:40 PM -0400 Richard Kenner
<kenner@vlsi1.ultra.nyu.edu> wrote:
> 2. Later, we complete the type. Then, we reset the RTL for the MEM to
> reflect the new DECL_MODE. We accomplish this by calling make_rtl
> again for the DECL, which triggers this code:
>
> /* If the old RTL had the wrong mode, fix the mode. */
> if (GET_MODE (DECL_RTL (decl)) != DECL_MODE (decl))
> SET_DECL_RTL (decl, adjust_address_nv (DECL_RTL (decl),
> DECL_MODE (decl), 0));
>
> Unfortunately, that doesn't update MEM_ALIGN.
>
> But look at the code in expand_expr case VAR_DECL!
Actually, even assuming that I can figure out how to get that code to
fire, there's still a problem.
Either it's OK to call make_decl_rtl twice for the same DECL, and we
need to update the alignment, or it's not, and there should be an
abort there rather than an a call to adjust_address_1. Right?
--
Mark Mitchell mark@codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com