1-- { dg-do run } 2 3procedure Nan_Max is 4 5 function NaN return Long_Float is 6 Zero : Long_Float := 0.0; 7 begin 8 return Zero / Zero; 9 end; 10 11 Z : Long_Float := 1.0; 12 N : Long_Float := NaN; 13 14begin 15 if Long_Float'Max (N, Z) /= Z then 16 raise Program_Error; 17 end if; 18 19 if Long_Float'Max (Z, N) /= Z then 20 raise Program_Error; 21 end if; 22 23 if Long_Float'Max (NaN, Z) /= Z then 24 raise Program_Error; 25 end if; 26 27 if Long_Float'Max (Z, NaN) /= Z then 28 raise Program_Error; 29 end if; 30end; 31