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)18Foo::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)28int blort(Foo& f) 29 { 30 return f->a; 31 } 32 main()33int main() 34 { 35 var_Foo b(2);// { dg-error "match" } 36 b->a = 0; 37 int x = blort(b); 38 return x; 39 } 40