blob: 7611c18d94849ea74bc2b415cfad42622cb59118 [file] [log] [blame]
/* PR c++/96003 - spurious -Wnonnull calling a member on the result
of static_cast
{ dg-do compile }
{ dg-options "-Wall" } */
struct D;
struct B
{
B* next;
D* Next ();
};
struct D: B
{
virtual ~D ();
};
struct Iterator
{
D* p;
void advance ()
{
p = static_cast<B*>(p)->Next (); // { dg-bogus "\\\[-Wnonnull" }
}
};
// Test case from comment #11.
struct S1 { virtual ~S1 (); };
struct S2 { virtual ~S2 (); };
struct S3: S1, S2 { void f (); };
void f (S2 *p)
{
static_cast<S3 *>(p)->f (); // { dg-bogus "\\\[-Wnonnull" }
}