Re: GCC 6 -Wnonnull is too aggressive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 19.2.2016 13:08, Marek Polacek wrote:
> On Fri, Feb 19, 2016 at 01:04:04PM +0100, Petr Spacek wrote:
>> On 19.2.2016 08:50, Jakub Jelinek wrote:
>>> On Fri, Feb 19, 2016 at 03:12:29AM +0100, Kevin Kofler wrote:
>>>> Jakub Jelinek wrote:
>>>>> ASSERT(this) is pointless, it is testing if undefined behavior didn't
>>>>> happen after the fact, that is just too late.  As I said, use
>>>>> -fsanitize=undefined to make sure you don't call methods on nullptr.
>>>>
>>>> Doesn't -fno-delete-null-pointer-checks make such ASSERTs work (and also 
>>>> explicit "if (this)" type checks)? I read that that flag fixes programs 
>>>> which rely on "if (this)" checks.
>>>
>>> That switch allows to work around buggy programs, at the cost of optimizing
>>> them less, yes.  In any case, such programs should be fixed, this must be
>>> always non-NULL, methods can't be called on NULL pointers.
>>
>> Could you elaborate on this, please?
>>
>> What is wrong with
>>     if (ptr != NULL)
>> ?
>>
>> What standard says that it is wrong?
> 
> It's about checking whether "this", in C++, is NULL.  Since any call on a null
> pointer is undefined behavior, any code relying on such checks is non-standard.

Ah, okay. I was talking about pure C all the time, so I got confused :-)

-- 
Petr Spacek  @  Red Hat
--
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
http://lists.fedoraproject.org/admin/lists/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux