From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25323 invoked by alias); 16 Jul 2007 14:03:24 -0000 Received: (qmail 25279 invoked by uid 48); 16 Jul 2007 14:03:08 -0000 Date: Mon, 16 Jul 2007 14:03:00 -0000 Message-ID: <20070716140308.25278.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/32772] [4.3 Regression] error: found real variable when subvariables should have appeared In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "jakub at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2007-07/txt/msg01718.txt.bz2 ------- Comment #6 from jakub at gcc dot gnu dot org 2007-07-16 14:03 ------- Even shorter testcase: struct S { unsigned long bits[1]; }; void f1 (int, unsigned long *); int f2 (void); int f3 (int, unsigned long *); int f4 (int, unsigned long *); static inline __attribute__ ((always_inline)) void baz (int x, volatile struct S *y) { f1 (x, y->bits); } static int bar (int x, struct S *y) { int n; if (__builtin_constant_p (x) ? f3 (x, y->bits) : f4 (x, y->bits)) baz (x, y); for (n = f2 (); n < 8; n = f2 ()) f3 (n, y->bits); } void foo (int x, int y) { struct S m; while ((y = bar (x, &m)) >= 0); } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32772