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