===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-6/porting_to.html,v
retrieving revision 1.6
@@ -106,13 +106,11 @@
<p>
Such code must be changed to convert the iostream object to <code>bool</code>
-explicitly:
+explicitly, e.g. <code>return (bool)os;</code>
+or
+<code>return static_cast<bool>(os);</code>
</p>
-<pre><code>
- bool valid(std::ostream& os) { return (bool)os; }
-</code></pre>
-
<h4>Lvalue required as left operand of assignment with complex numbers</h4>
<p>
@@ -222,6 +220,25 @@
the C++ standard library.
</p>
+<h3>Optimizations remove null pointer checks for <code>this</code></h3>
+
+<p>
+When optimizing, GCC now assumes the <code>this</code> pointer can never be
+null, which is guaranteed by the language rules. Invalid programs which
+assume it is OK to invoke a member function through a null pointer (possibly
+relying on checks like <code>this != NULL</code>) may crash or otherwise fail
+at run-time if null pointer checks are optimized away.
+With the <code>-Wnull-dereference</code> option the compiler tries to warn
+when it detects such invalid code.
+</p>
+
+<p>
+If the program cannot be fixed to remove the undefined behaviour then the
+option <code>-fno-delete-null-pointer-checks</code> can be used to disable
+this optimization. That option also disables other optimizations involving
+pointers, not only those involving <code>this</code>.
+</p>
+
<h2>-Wmisleading-indentation</h2>
<p>
A new warning <code>-Wmisleading-indentation</code> was added