Your otherComputation() example doesn&#x27;t strike me as a clear cut case.   My preference (and I agree that this is not required by spec) would be that the checks would be omitted only if the dereference has actually been executed, and not if the initialization has just been declared.  Essentially, I think I&#x27;d like dereference of a NULL pointer to be defined behavior as far as generated code (the code must behave identically to how it would behave if the load was issued) while possibly undefined for the processor (crashing is valid, but returning a constant would be valid too).  The compiler is allowed to reduce many checks to one by assuming consistency, but not allowed to ignore the checks altogether.<p><i>I&#x27;m pretty sure your snippet invokes nasal demons in all dialects. Dereferencing NULL is a pretty classic case where anything can happen once you do it.</i><p>Is the dereferencing itself undefined in all dialects, or is it only undefined if one later &quot;evaluates&quot; the dereferenced value?   Or do some define evaluation differently? For example (to my surprise) a comment by &#x27;lkasndasd&#x27; on the corresponding Reddit thread points out that &amp;* ptr is never undefined behavior in C, since the address operator and the dereference operator cancel out even (explicitly) if ptr is NULL:<p><pre><code>  6.5.3.2 Unary arithmetic operators, Semantics, paragraph 3:
  The unary &amp; operator yields the address of its operand. 
  [...] If the operand is the result of a unary * operator, 
  neither that operator nor the &amp; operator is evaluated and 
  the result is as if both were omitted, except that the 
  constraints on the operators still apply and the result is 
  not an lvalue.
  and footnote 102:
  Thus, &amp;*E is equivalent to E (even if E is a null pointer) [...]
</code></pre>
<a href="https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;programming&#x2F;comments&#x2F;3xk6zj&#x2F;the_dangers_of_super_smart_compilers&#x2F;cy5gi1t" rel="nofollow">https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;programming&#x2F;comments&#x2F;3xk6zj&#x2F;the_dan...</a><p><a href="http:&#x2F;&#x2F;www.open-std.org&#x2F;jtc1&#x2F;sc22&#x2F;wg14&#x2F;www&#x2F;docs&#x2F;n1570.pdf" rel="nofollow">http:&#x2F;&#x2F;www.open-std.org&#x2F;jtc1&#x2F;sc22&#x2F;wg14&#x2F;www&#x2F;docs&#x2F;n1570.pdf</a>