dimanche 13 août 2023

Why does GCC C++ issue to "warning: nonnull parameter `this' compared to NULL" when I'm passing this as a parameter? [closed]

Why does GCC C++ issue

warning: nonnull parameter `this' compared to NULL

when the code being compiled is passing this as a parameter even though this is not being compared to NULL or any of its equivalents?

In the constructor of a derived C++ class I pass this as a parameter to a function which is expecting a pointer to a base class of the derived class. The constructor never compares this against anything, much less NULL or its equivalents. Yet when this code is compiled by GCC 8.5.0 with -std=c++11 on RHEL 8.6 on x86_64 I get

warning: nonnull parameter `this' compared to NULL

Note that I didn't get this warning when the same code is compiled by GCC 4.8.5 with -std=c++0x on RHEL 7.9 on x86_64.

I can work around or suppress this warning, but I wonder why I'm getting this warning even though this code isn't comparing this to NULL or any of its equivalents.

Aucun commentaire:

Enregistrer un commentaire