From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12650 invoked by alias); 17 Oct 2004 23:56:39 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 12643 invoked from network); 17 Oct 2004 23:56:38 -0000 Received: from unknown (HELO mail.codesourcery.com) (65.74.133.9) by sourceware.org with SMTP; 17 Oct 2004 23:56:38 -0000 Received: (qmail 27514 invoked from network); 17 Oct 2004 23:56:38 -0000 Received: from taltos.codesourcery.com (zack@66.92.218.83) by mail.codesourcery.com with DES-CBC3-SHA encrypted SMTP; 17 Oct 2004 23:56:38 -0000 Received: by taltos.codesourcery.com (sSMTP sendmail emulation); Sun, 17 Oct 2004 16:56:37 -0700 To: kenner@vlsi1.ultra.nyu.edu (Richard Kenner) Cc: pinskia@physics.uc.edu, gcc-patches@gcc.gnu.org Subject: Re: [patch] for PR 18040 References: <10410172240.AA01890@vlsi1.ultra.nyu.edu> <87is98syjj.fsf@codesourcery.com> From: Zack Weinberg Date: Mon, 18 Oct 2004 00:23:00 -0000 In-Reply-To: <87is98syjj.fsf@codesourcery.com> (Zack Weinberg's message of "Sun, 17 Oct 2004 16:41:20 -0700") Message-ID: <87brf0sxu2.fsf@codesourcery.com> User-Agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2004-10/txt/msg01433.txt.bz2 Zack Weinberg writes: > Hmm. Is it possible to construct an example which BOTH requires > taking the address of an intermediate field, and wouldn't be cured by > making all *_REF expressions implicitly convert to their type? Correction: I meant to say "... requires changing the type of an intermediate component of the chain of *_REF expressions ..." Also, I just now thought of an alternative: whenever you have a chain of *_REF expressions which requires a type conversion somewhere along the way, construct a modified version of the *outermost* type which will give the field in question the effective type that it needs. Then take the address of the whole aggregate, convert it to that modified type, and do the dereferences. zw