Michael Morrell <morrell@xxxxxxxxxxxxxxx> writes: > The following code compiles without warning using g++ version 4.2.1, but I > get a warning "NULL used in arithmetic" with version 4.3.3. Is the code > wrong or is the compiler wrong? > > ================================ > #include <stddef.h> > > class FooClass > { > }; > > typedef void (FooClass::*foo_type)(void); > > int foo(foo_type x) > { > return x != NULL; > } > ================================ I believe the compiler is wrong. However, I can't recreate the problem using gcc 4.3.2, nor with mainline. I'm not sure why you are seeing that. Ian