This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/32772] [4.3 Regression] error: found real variable when subvariables should have appeared
- From: "jakub at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 16 Jul 2007 14:03:08 -0000
- Subject: [Bug tree-optimization/32772] [4.3 Regression] error: found real variable when subvariables should have appeared
- References: <bug-32772-9876@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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