-- { dg-do run } | |
procedure Nan_Max is | |
function NaN return Long_Float is | |
Zero : Long_Float := 0.0; | |
begin | |
return Zero / Zero; | |
end; | |
Z : Long_Float := 1.0; | |
N : Long_Float := NaN; | |
begin | |
if Long_Float'Max (N, Z) /= Z then | |
raise Program_Error; | |
end if; | |
if Long_Float'Max (Z, N) /= Z then | |
raise Program_Error; | |
end if; | |
if Long_Float'Max (NaN, Z) /= Z then | |
raise Program_Error; | |
end if; | |
if Long_Float'Max (Z, NaN) /= Z then | |
raise Program_Error; | |
end if; | |
end; |