diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/vect/pr33834_1.cc')
-rw-r--r-- | gcc/testsuite/g++.dg/vect/pr33834_1.cc | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/vect/pr33834_1.cc b/gcc/testsuite/g++.dg/vect/pr33834_1.cc new file mode 100644 index 000000000..715ff0dda --- /dev/null +++ b/gcc/testsuite/g++.dg/vect/pr33834_1.cc @@ -0,0 +1,50 @@ +/* { 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 (); +} +/* { dg-final { cleanup-tree-dump "vect" } } */ |