OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [testsuite/] [g++.old-deja/] [g++.brendan/] [crash5.C] - Blame information for rev 199

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 149 jeremybenn
// { dg-do assemble  }
2
// GROUPS passed old-abort
3
// Should have been fixed by:
4
//
5
// Sun Jun 13 12:55:22 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
6
//
7
//      * cp-cvt.c (build_default_binary_type_conversion): Look deeper into
8
//      what ARG1 and ARG2 are if they're POINTER_TYPEs.
9
 
10
class CountableSet
11
{
12
        public:
13
                virtual ~CountableSet() { }
14
};
15
 
16
template
17
class FixedSet : virtual public CountableSet
18
{
19
        public:
20
                virtual int Get(int, T&) = 0;
21
                virtual ~FixedSet() { }
22
};
23
 
24
class ShrinkableSet
25
{
26
        public:
27
                virtual int Remove(int) = 0;
28
};
29
 
30
template
31
class PVSet : virtual public FixedSet, virtual public ShrinkableSet
32
{
33
        public:
34
                virtual void Append(const T&) = 0;
35
                virtual void operator+=(const T& a) { Append(a); }
36
                virtual ~PVSet() { }
37
};
38
 
39
template
40
class MutSet : virtual public FixedSet, virtual public FixedSet
41
{
42
        protected:
43
                typedef T       *Tp;
44
 
45
        public:
46
                void Append(const Tp& tp) { Append(*tp); }
47
 
48
                T&      Access(int p)
49
                {
50
                        Tp      tp;
51
                        Get(p, tp);
52
                        return *tp;
53
                }
54
                virtual ~MutSet() { }
55
};
56
 
57
template 
58
class   SimpleSet : virtual public MutSet
59
{
60
        protected:
61
                T       *array;
62
                int     size;
63
 
64
                virtual void    Allocate(int s)
65
                {
66
                        array = new T[s];
67
                }
68
        public:
69
                SimpleSet()
70
                {
71
                        size = 0;
72
                        array = 0;
73
                }
74
                int     Get(int p, T& t)
75
                {
76
                        t = array[p-1];
77
                        return 1;
78
                }
79
                int     Get(int p, T *& t)
80
                {
81
                        t = &array[p-1];
82
                        return 1;
83
                }
84
                inline void Append(const T& a)
85
                {
86
                        array[size-1] = a;
87
                }
88
                inline int Remove(int n) { return 0; }
89
};
90
 
91
class   Dummy
92
{
93
        public:
94
                Dummy() {}
95
};
96
 
97
int
98
main()
99
{
100
        SimpleSet               bs1;
101
        int     i, j;
102
        Dummy   foo;
103
 
104
        bs1+=&foo;// { dg-error "" }  no .*
105
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.