From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21067 invoked by alias); 21 Sep 2006 09:12:09 -0000 Received: (qmail 21025 invoked by uid 48); 21 Sep 2006 09:12:02 -0000 Date: Thu, 21 Sep 2006 09:12:00 -0000 Message-ID: <20060921091202.21024.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug c/29154] [4.0/4.1/4.2 Regression] *(* ppointer++)++ = *pointer++ generates bad code In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "rguenth at gcc dot gnu dot org" 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 X-SW-Source: 2006-09/txt/msg02023.txt.bz2 List-Id: ------- Comment #2 from rguenth at gcc dot gnu dot org 2006-09-21 09:12 ------- Confirmed. Gimplification get's this wrong. Testcase: extern void abort (void); void foo(int **p, int *q) { *(*p++)++ = *q++; } int main() { int i = 42, j = 0; int *p = &i; foo(&p, &j); if (p - 1 != &i || j != 0 || i != 0) abort (); return 0; } -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu dot | |org, rakdver at gcc dot gnu | |dot org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords| |wrong-code Known to fail| |4.0.3 4.1.1 4.2.0 Known to work| |3.4.6 Last reconfirmed|0000-00-00 00:00:00 |2006-09-21 09:12:02 date| | Summary|*(* ppointer++)++ = |[4.0/4.1/4.2 Regression] *(* |*pointer++ generates bad |ppointer++)++ = *pointer++ |code |generates bad code http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29154