I have a question about GCC optimizations and null pointers. Consider this program: #include <stdlib.h> int main(int ac, char **av) { int *r1; int *r2; r1 = ∾ *r1 = 0; r2 = (void *)0; /* or (void *)1, etc. */ if (*r1 != *r2) return 1; return 1; } When run & compiled with gcc -O2 (gcc 3.2.2) it does not segfault. Clearly this is because the optimizer realizes that *r1 need not be read in order to know that the function should return 1. However, in my application I'm relying on the side effects of dereferencing a null pointer (ie., SEGV signal), so that causes bugs for me. I understand that according to the C standard dereferencing a null pointer results in "undefined" behavior, so gcc is not behaving incorrectly. However, is there some way to get the desired semantics? It appears omitting the -O2 does it, but I'd prefer to not do that. Thanks, -Archie __________________________________________________________________________ Archie Cobbs * CTO, Awarix * http://www.awarix.com