[PATCH v2] Refactor to avoid nonnull checks on "this" pointer.

Yaakov Selkowitz yselkowitz@cygwin.com
Fri Apr 1 13:13:00 GMT 2016


On 2016-04-01 07:13, Corinna Vinschen wrote:
> On Mar 31 12:18, Peter Foley wrote:
>> G++ 6.0 asserts that the "this" pointer is non-null for member functions.
>> Refactor methods that check if this is non-null to be static where
>> necessary, and remove the check where it is unnecessary.
>
> No, sorry, but now.  Converting all affected functions to static
> functions just because this might be null is much too intrusive for my
> taste.  *If* that's really a problem going forward, I'd rather see the
> pointer test moved into the caller.  But don't waste your time on a
> patch yet.
>
> Let's please take a step back and look at what happens.  So, here's the
> question:  What error message does G++ 6 generate in case of an `if
> (this)' test in a member function, and why on earth should it care and
> do that?

See https://gcc.gnu.org/gcc-6/porting_to.html, section named 
"Optimizations remove null pointer checks for this".

-- 
Yaakov



More information about the Cygwin-patches mailing list