-----Original Message-----
From: ros-dev-bounces(a)reactos.com
[mailto:ros-dev-bounces@reactos.com] On Behalf Of Thomas Weidenmueller
Sent: Wednesday, May 04, 2005 7:16 AM
To: ReactOS Development List
Subject: Re: [ros-dev] gcc problem or not
Hartmut Birr wrote:
Hi,
I was always the opinion that the examination of a test condition
stops if the result can not change again. A test condition
like this:
if (pointer == NULL || pointer->member == 0)
should never access pointer->member if pointer is zero.
Compared with
the code above, it is possible that gcc build the
result from the
right side of the OR statement. This may hit a page fault.
Is this a
bug in gcc?
It should definitely not dereference if it's NULL. The
conditions should
be checked from left to right in this case, no matter how much was
optimized.
To be safe, you might also check
BadReadPtr(pointer,sizeof(struct_pointed_to)). The pointer may be
undefined, rather than NULL.
Danny