| /* { dg-do compile } */ |
| |
| /* Testcase by Martin Michlmayr <tbm@cyrius.com> */ |
| |
| extern double cos (double x); |
| extern double sin (double x); |
| |
| class bend_class |
| { |
| double *s_A; |
| public: |
| void set_s_A (double s_A0) |
| { |
| s_A[0] = s_A0; |
| } |
| }; |
| class bend_set |
| { |
| bend_class *bend_array; |
| public: |
| void set_s_A (int index, double s_A0) |
| { |
| bend_array[index].set_s_A (s_A0); |
| } |
| void compute_s (void) |
| { |
| int i, j; |
| double val; |
| double tmp[3]; |
| for (i = 0; i < 5; ++i) |
| { |
| val = i; |
| for (j = 0; j < 2; ++j) |
| tmp[j] = cos (val); |
| set_s_A (i, tmp[0]); |
| tmp[j] = cos (val) / sin (val); |
| } |
| } |
| }; |
| class internals |
| { |
| bend_set bend; |
| void compute_s (void); |
| }; |
| void |
| internals::compute_s (void) |
| { |
| bend.compute_s (); |
| } |