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++.robertl/] [eb127.C] - Blame information for rev 338

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 305 jeremybenn
// { dg-do assemble  }
2
// Gets ICE 40.
3
 
4
#include 
5
#include
6
#include 
7
 
8
using namespace std;
9
 
10
class ODEsolver
11
{
12
    private:
13
        void eulerODE(vector& y, double& t, double& dt);
14
        void midpointODE(vector& y, double& t, double& dt);
15
 
16
    protected:
17
        void (ODEsolver::*useMethod)(vector&, double&, double&);
18
        void init();
19
 
20
    public:
21
        ODEsolver();
22
        void timeloop(vector& y, double ts, double te, double dt);
23
};
24
 
25
 
26
ODEsolver::ODEsolver()
27
{
28
  init();
29
}
30
 
31
 
32
void ODEsolver::eulerODE(vector& y, double& t, double& dt)
33
{
34
  y[0] = dt * 2.;
35
}
36
 
37
void ODEsolver::midpointODE(vector& y, double& t, double& dt)
38
{
39
  y[0] = dt * 3.;
40
}
41
 
42
 
43
 
44
void ODEsolver::init()
45
{
46
  ODEsolver::useMethod = &ODEsolver::midpointODE;
47
}
48
 
49
void ODEsolver::timeloop(vector& y, double ts, double te, double dt)
50
{
51
  (ODEsolver::useMethod)(y,ts,dt); // { dg-error "" } should use this->*
52
}
53
 
54
int main (int nargs, char** args)
55
{
56
  ODEsolver solver;
57
  vector y(2);  double t_start=5.;  double t_end=7.;  double dt=2.;
58
  solver.timeloop(y,t_start,t_end,dt);
59
  cout << y[0] << endl;
60
  return(0);
61
}

powered by: WebSVN 2.1.0

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