This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/69922] New: Bogus -Wnonnull-compare for: ... ? static_cast<T*>(this) : nullptr
- From: "sbergman at redhat dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 23 Feb 2016 15:38:19 +0000
- Subject: [Bug c++/69922] New: Bogus -Wnonnull-compare for: ... ? static_cast<T*>(this) : nullptr
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69922
Bug ID: 69922
Summary: Bogus -Wnonnull-compare for: ... ?
static_cast<T*>(this) : nullptr
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: sbergman at redhat dot com
Target Milestone: ---
With trunk@233631:
> $ cat test.cc
> struct S2 { virtual ~S2(); };
> struct S1 {
> virtual ~S1();
> S2 * f(bool);
> };
> struct S3: S1, S2 {};
> S2 * S1::f(bool b) { return b ? static_cast<S3 *>(this) : nullptr; }
> $ g++ -Werror -Wnonnull-compare -c test.cc
> test.cc: In member function âS2* S1::f(bool)â:
> test.cc:7:59: error: nonnull argument âthisâ compared to NULL [-Werror=nonnull-compare]
> S2 * S1::f(bool b) { return b ? static_cast<S3 *>(this) : nullptr; }
> ^~~~~~~
> cc1plus: all warnings being treated as errors