/* Tail call optimizations would reverse the order of additions in func(). */doublefunc(constdouble*array){doubled=*array;if(d==0.0)returnd;elsereturnd+func(array+1);}intmain(){doublevalues[]={0.1e-100,1.0,-1.0,0.0};if(func(values)!=0.1e-100)abort();exit(0);}