Disallow null references in safe code?

Tove Tove at fransson.se
Sun Feb 2 13:50:51 PST 2014


On Sunday, 2 February 2014 at 09:56:06 UTC, Marc Schütz wrote:
>
> auto x = *p;
> if(!p) {
>     do_something(x);
> }
>
> In the first step, the if-block will be removed, because its 
> condition is "known" to be false. After that, the value stored 
> into x is unused, and the dereference can get removed too.

With a good static analyzer, such as coverity, this program would 
be rejected anyway with "check_after_deref", if the compiler is 
smart enough to do the optimization, it could be smart enough to 
issue a warning as well!



More information about the Digitalmars-d mailing list