From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10054 invoked by alias); 14 Dec 2004 14:44:59 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 10003 invoked from network); 14 Dec 2004 14:44:52 -0000 Received: from unknown (HELO vlsi1.ultra.nyu.edu) (128.122.140.213) by sourceware.org with SMTP; 14 Dec 2004 14:44:52 -0000 Received: by vlsi1.ultra.nyu.edu (4.1/1.34) id AA20637; Tue, 14 Dec 04 09:49:43 EST Date: Tue, 14 Dec 2004 14:44:00 -0000 From: kenner@vlsi1.ultra.nyu.edu (Richard Kenner) Message-Id: <10412141449.AA20637@vlsi1.ultra.nyu.edu> To: ebotcazou@libertysurf.fr Subject: Re: [ada] can't build g-awk.adb in gcc cvs trunk 20041212 on sparc-linux: GCC error: in expand_expr_addr_expr_1, at expr.c:6047, Error detected at g-awk.adb:1316:24 Cc: gcc@gcc.gnu.org X-SW-Source: 2004-12/txt/msg00504.txt.bz2 The problematic expression reaches expand_expr_addr_expr_1 unmodified because it was accepted at least once by handled_component_p at an earlier stage (e.g. the gimplifier). OK, now I understand. Unfortunately, *not* "accepting" it is also problematic since the gimplifier, if it doesn't accept that, will make a temporary for the result of the VIEW_CONVERT_EXPR, so the ADDR_EXPR would be returning the address of that temporary and not the operand of the V_C_E, which is exactly what you *don't* want to happen for TYPE_ALIGN_OK. So this maybe indeed be the single exception to the correspondance between get_inner_refrence and handled_component_p. I don't particularly care for that, but if there's no other way, we should at least document it *very* clearly ... This is tricky stuff!