#ifndef EXPECT_FINAL
# error EXPECT_FINAL not defined
#endif
#ifndef EXPECT_INHERITING_CONSTRUCTORS
# error EXPECT_INHERITING_CONSTRUCTORS not defined
#endif
#ifndef EXPECT_INHERITING_CONSTRUCTORS_AND_FINAL
# error EXPECT_INHERITING_CONSTRUCTORS_AND_FINAL not defined
#endif
#ifndef EXPECT_OVERRIDE_CONTROL
# error EXPECT_OVERRIDE_CONTROL not defined
#endif

#if !HAVE_OVERRIDE_CONTROL
#if EXPECT_OVERRIDE_CONTROL
#error "Expect override control feature"
#endif
#else
#if !EXPECT_OVERRIDE_CONTROL
#error "Expect no override control feature"
#endif

struct A
{
  virtual int getA() { return 7; }
};

struct B final : A
{
  int getA() override { return 42; }
};

#endif

#if !HAVE_AUTO_TYPE
#  error Expect cxx_auto_type support
#endif

#if !HAVE_INHERITING_CONSTRUCTORS
#  if EXPECT_INHERITING_CONSTRUCTORS
#    error Expect cxx_inheriting_constructors support
#  endif
#else
#  if !EXPECT_INHERITING_CONSTRUCTORS
#    error Expect no cxx_inheriting_constructors support
#  endif
#endif

#if !HAVE_FINAL
#  if EXPECT_FINAL
#    error Expect cxx_final support
#  endif
#else
#  if !EXPECT_FINAL
#    error Expect no cxx_final support
#  endif
#endif

#if !HAVE_INHERITING_CONSTRUCTORS_AND_FINAL
#  if EXPECT_INHERITING_CONSTRUCTORS_AND_FINAL
#    error Expect cxx_inheriting_constructors and cxx_final support
#  endif
#else
#  if !EXPECT_INHERITING_CONSTRUCTORS_AND_FINAL
#    error Expect no combined cxx_inheriting_constructors and cxx_final support
#  endif
#endif

int main()
{

}
