> > This could just return 1. > > $ cat unsigned-arith.c > int foo(unsigned int *a, unsigned int *b, unsigned int *c) > { > unsigned int s1, s2; > > s1 = *a + *b; > s2 = *c + *b; > > return s1 + *c == s2 + *a; > }
The issue here is the reassociater needs to be a fully reassociater and that has a couple of different bugs about this filed already. -- Pinski