aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.old-deja/g++.jason/3523.C
blob: a0ddc9ca1542ab1da5b801586fcb04bf375f4c79 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// { dg-do assemble  }
// GROUPS passed assignment
class ccUnwind 
{
public:
    virtual ~ccUnwind (); // comment out virtual, and void diag changes
};

template<class T>
class ccHandle : public ccUnwind // similarly comment out inheritance
{   
public:
    ccHandle& operator = (const ccHandle& h);
};

class cc_Image;		 

class ccImage : public ccHandle<cc_Image>
{
public:
//  reversing the order of the next two lines changes the diagnostic
//  printed about the def of ccDisplay::image 
    ccImage    (const  ccImage  &);
    ccImage    (const  cc_Image &);
};

class ccDisplay 
{
public:
    ccImage img;
//ccImage image ( ccImage i) {img = i; return img;}
// above line  compiles 
    ccImage image ( ccImage i) { return img = i;} /* this gets void* error */
};



// vd.C: In method `class ccImage ccDisplay::image (class ccImage)':
// vd.C:31: bad argument 1 for function `ccImage::ccImage (const class cc_Image&)' (type was void *)
// vd.C:31: in base initialization for class `ccImage'