I wonder if the following code will always be compiled so that there are no illegal NULL ptr dereferences?
My concern is that the compiler may check if b->value before first checking if "b" is NULL.
typedef struct
{
int value;
} mystruct;
int func(mystruct * b)
{
if((NULL == b) || (b->value == 0))
{
return -1;
}
printf("value: %d\n", b->value);
}