2 // { dg-additional-options "-fno-tree-sra" }
3 // { dg-skip-if "requires hosted libstdc++ for complex" { ! hostedlib } }
11 bar_src() : next(0) {}
12 virtual ~bar_src() { delete next; }
17 class foo_src : public bar_src {
19 foo_src(double f, double fwidth, double s = 5.0);
23 double freq, width, peak_time, cutoff;
27 foo_src::foo_src(double f, double fwidth, double s) {
28 freq = f; width = 1/fwidth; cutoff = s*width; peak_time = cutoff;
31 complex<double> do_ft2(int i) __attribute__ ((noinline));
33 complex<double> do_ft2(int i) {
34 return i == 0 ? complex<double>(-491.697,887.05) : complex<double>(-491.692,887.026);
38 complex<double> prev_ft = 0.0, ft = 0.0;
39 for (int i=0; i < 2; i++) {
42 foo_src src(1.0, 1.0 / 20);
47 double a = abs(ft - prev_ft);
48 if (a < 0.024 || a > 0.025)