view gcc/testsuite/g++.dg/ubsan/pr69922.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

// PR c++/69922
// { dg-do compile }
// { dg-options "-fsanitize=vptr -Wnonnull-compare" }

struct S { virtual ~S (); };
struct T : S { T *bar (); T *baz (); T *q; bool b; };

T *
T::bar ()
{
  return static_cast<T*>(reinterpret_cast<S*>(this));	// { dg-bogus "nonnull argument" }
}

T *
T::baz ()
{
  return static_cast<T*>(reinterpret_cast<S*>(b ? this : q));	// { dg-bogus "nonnull argument" }
}