The real case where it matters is where the &quot;if (foo) { ... }&quot; test happens in a function that&#x27;s been inlined into the caller, but <i>not all the callers do the foo-&gt;bar() dereference</i>.  So it&#x27;s only being removed in some cases.