From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26170 invoked by alias); 4 Mar 2005 06:31:06 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 26053 invoked by uid 48); 4 Mar 2005 06:30:44 -0000 Date: Fri, 04 Mar 2005 06:31:00 -0000 Message-ID: <20050304063044.26052.qmail@sourceware.org> From: "pinskia at gcc dot gnu dot org" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20050302093824.20280.caolanm@redhat.com> References: <20050302093824.20280.caolanm@redhat.com> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug c++/20280] [4.0/4.1 regression] ICE in create_tmp_var, at gimplify.c:368 X-Bugzilla-Reason: CC X-SW-Source: 2005-03/txt/msg00483.txt.bz2 List-Id: ------- Additional Comments From pinskia at gcc dot gnu dot org 2005-03-04 06:30 ------- (In reply to comment #7) > Yeah, it permits, but only in certain circumstances that AFAICT aren't > met. This expression AFAICT is an lvalue that isn't a bit-field, so > it has to bind directly, per the first bullet in 8.5.3/5. Since it > meets the conditions of this first bullet, it doesn't get to use the > `otherwise' portion of that paragraph, that creates a temporary. Or > am I misreading anything? Yes these expressions are lvalues, see again PR 19199 where we get this wrong. Even Mark and RTH commented on it. Again it looks like the C++ parser should be creating a tempary to store the address and have the indirect reference out of the COND_EXPR, this can only happen for non bitfields. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20280