diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.robertl/eb93.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.robertl/eb93.C | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb93.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb93.C new file mode 100644 index 000000000..da5e7bdd7 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb93.C @@ -0,0 +1,31 @@ +// { dg-do assemble } +// Error: Internal compiler error on egcs 1998/05/28 snapshot. + +const double M_PI=3.14159265358979323846; + +template<int N,int I,int J,int K> +inline double SineSeries() +{ + const double x=I*2*M_PI/N; + const bool go=K+1!=J; + return 1.0-x*x/(2*K+2)/(2*K+3)*SineSeries<N*go,I*go,J*go,(K+1)*go>(); +} + +template<> +inline double SineSeries<0,0,0,0>() +{ + return 1.0; +} + +template<int N,int I> +inline double Sine() +{ + const double x=(I*2*M_PI/N); + return x * SineSeries<N,I,10,0>(); +} + +int main() +{ + double f=Sine<32,5>() + return 0; // { dg-error "" } parse error +} |