1 // { dg-do assemble  }
2 // { dg-options "-pedantic-errors" }
3 // GROUPS passed constructors
4 // ctors file
5 // Message-Id: <9301132030.AA05210@cs.rice.edu>
6 // From: dougm@cs.rice.edu (Doug Moore)
7 // Subject: 2.3.3: accepts ctor-less derived class of ctor-ful base class
8 // Date: Wed, 13 Jan 93 14:30:21 CST
9 // Note: It gives an error now.  But not a very good one.
10 
11 struct Foo
12 {
13   Foo(int aa);
14   int a;
15   const Foo* operator-> () const {return this;}
16 };
17 
Foo(int aa)18 Foo::Foo(int aa)
19 :a(aa)
20 { }
21 
22 
23 struct var_Foo: public Foo // { dg-message "note" }  base.*// ERROR -  in class.*
24 {
25   var_Foo* operator-> () {return this;}
26 };
27 
blort(Foo & f)28 int blort(Foo& f)
29 {
30   return f->a;
31 }
32 
main()33 int main()
34 {
35   var_Foo b(2);// { dg-error "match" }
36   b->a = 0;
37   int x = blort(b);
38   return x;
39 }
40