[ros-dev] gcc problem or not

Thomas Weidenmueller w3seek at reactos.com
Tue May 3 22:15:30 CEST 2005


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.

Thomas


More information about the Ros-dev mailing list