On Sunday 15 January 2006 22:13, John David Anglin wrote: > #include <stdio.h> > unsigned char > T (unsigned char x) > { > static int first = 1; > static unsigned char firstx; > > if (first) > { > first = 0; > firstx = x; > return ~x; > } > > if (x == firstx) > printf ("Behavior is pre GCC 4.0\n"); > else > printf ("Behavior is GCC 4.0 and later\n"); > return 0; > }
So firstx can have an indeterminate value coming into "if (x == firstx)" and the behavior is still undefined. For what it's worth, it annoys me to no end that you have managed to turn more than a day of hard work to understand and fix PR24626 into a discussion about defining undefined behavior. I don't think I'll ever look at HPPA bugs anymore if they don't affect me. Gr. Steven