OSDN Git Service

gcc/cp/
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.old-deja / g++.law / ctors9.C
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
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
28 int blort(Foo& f)
29 {
30   return f->a;
31 }
32
33 int main()
34 {
35   var_Foo b(2);// { dg-error "match" } 
36   // { dg-message "candidate" "candidate note" { target *-*-* } 35 }
37   b->a = 0;
38   int x = blort(b);
39   return x;
40 }