summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.other/crash10.C
blob: d0534f06de8b6557925ef2c2bad5c4f9c0d6ca8b (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
41
42
43
44
45
46
47
48
49
50
51
52
// { dg-do assemble  }
// Origin: Loring Holden <lsh@cs.brown.edu>

template <class T>
class REFptr {
   public:
      REFptr();
      REFptr(T *pObj);
      virtual ~REFptr();
      operator T* () const;
};

class GEL;
class GELsubc {
   public :
      virtual GEL *GELcast() const;
};
class GELptr : public REFptr<GEL>{
   public :                                        
      GELptr(const GELptr  &p);
      GELptr(const GELsubc &p);
};
class GEL { };

class GEOM;
class GEOMptr : public REFptr<GEOM>, public GELsubc {
   public:
      GEOMptr() { }
      GEOMptr(GEOM  *g); 
};
class GEOM : public GEL {
   public: 
      GEOM(const GEOMptr &o);
      GEOM();
};

class TEXT2D;
class TEXT2Dptr : public REFptr<TEXT2D> {
   public:
      TEXT2Dptr();
      TEXT2Dptr(TEXT2D *g); 
};
class TEXT2D : public GEOM { };

void testit(const GELptr g);

void
FPS()
{
  TEXT2Dptr fps_text;
  testit(GEOMptr(&*fps_text));
}