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

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [g++.old-deja/] [g++.mike/] [net31.C] - Blame information for rev 338

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 305 jeremybenn
// { dg-do assemble  }
2
 
3
class foo_a {
4
  protected:
5
        double func(int xi) {return 0.0;}
6
  public:
7
        foo_a() {}
8
};
9
 
10
class foo_b {
11
  public:
12
        foo_b(int);
13
        foo_b();
14
        ~foo_b();
15
        foo_b(const foo_b&);
16
        double& operator()(int);
17
        foo_b& operator=(foo_b&);
18
        void bar_a(int);
19
};
20
 
21
foo_b& operator*(foo_b&, foo_b&);
22
foo_b& operator*(double, foo_b&);
23
 
24
template 
25
class foo_c {
26
        typedef double (TP::* Tmatf)(int);
27
        int m;
28
        Tmatf* a;
29
        void foo_cinst (int mm);
30
  public:
31
        foo_c(int mm);
32
        foo_c() {m = 0; a = 0;}
33
        ~foo_c() {delete a;}
34
        double (TP::*& operator()(int i))(int) {return a[i];}
35
        foo_b& bug_func(int);
36
};
37
 
38
template 
39
foo_b& foo_c::bug_func(int x) {
40
        static foo_b retval(m);
41
        retval.bar_a(m);
42
        for (register int i = 0; i < m; i++)
43
          retval(i) = (*(operator()(i)))(x);            // { dg-error "invalid use of unary '\\\*'" }
44
        return retval;
45
}
46
 
47
template 
48
class foo_d {
49
  protected:
50
        foo_c bar_b;
51
  public:
52
        foo_d() {}
53
        virtual ~foo_d() {}
54
        virtual void setfoo_c();
55
};
56
 
57
class foo_e : public foo_a, public foo_d {
58
  public:
59
        foo_e();
60
        ~foo_e() {}
61
        void setfoo_c();
62
};
63
 
64
void foo_e::setfoo_c() {
65
        bar_b(0) = func;                                // { dg-error "" }
66
}
67
 
68
template class foo_c;

powered by: WebSVN 2.1.0

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