view gcc/testsuite/g++.old-deja/g++.law/ctors9.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 04ced10e8804
children
line wrap: on
line source

// { dg-do assemble  }
// { dg-options "-pedantic-errors" }
// GROUPS passed constructors
// ctors file
// Message-Id: <9301132030.AA05210@cs.rice.edu>
// From: dougm@cs.rice.edu (Doug Moore)
// Subject: 2.3.3: accepts ctor-less derived class of ctor-ful base class
// Date: Wed, 13 Jan 93 14:30:21 CST
// Note: It gives an error now.  But not a very good one.

struct Foo
{
  Foo(int aa);
  int a;
  const Foo* operator-> () const {return this;}
};

Foo::Foo(int aa)
:a(aa)
{ }


struct var_Foo: public Foo // { dg-message "note" "" { target c++17_down } }  base.*// ERROR -  in class.*
{
  var_Foo* operator-> () {return this;}
};

int blort(Foo& f)
{
  return f->a;
}

int main()
{
  var_Foo b(2);// { dg-error "match" "" { target c++17_down } } 
  b->a = 0;
  int x = blort(b);
  return x;
}