1/* { dg-do compile } */
2
3/* Testcase by Martin Michlmayr <tbm@cyrius.com> */
4
5extern double cos (double x);
6extern double sin (double x);
7
8class bend_class
9{
10  double *s_A;
11public:
12  void set_s_A (double s_A0)
13  {
14    s_A[0] = s_A0;
15  }
16};
17class bend_set
18{
19  bend_class *bend_array;
20public:
21  void set_s_A (int index, double s_A0)
22  {
23    bend_array[index].set_s_A (s_A0);
24  }
25  void compute_s (void)
26  {
27    int i, j;
28    double val;
29    double tmp[3];
30    for (i = 0; i < 5; ++i)
31    {
32      val = i;
33      for (j = 0; j < 2; ++j)
34        tmp[j] = cos (val);
35      set_s_A (i, tmp[0]);
36      tmp[j] = cos (val) / sin (val);
37    }
38  }
39};
40class internals
41{
42  bend_set bend;
43  void compute_s (void);
44};
45void
46internals::compute_s (void)
47{
48  bend.compute_s ();
49}
50/* { dg-final { cleanup-tree-dump "vect" } } */
51