Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gnat.dg/inline2_pkg.adb @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
with Ada.Unchecked_Conversion; package body Inline2_Pkg is type Ieee_Short_Real is record Mantisse_Sign : Integer range 0 .. 1; Exponent : Integer range 0 .. 2 ** 8 - 1; Mantisse : Integer range 0 .. 2 ** 23 - 1; end record; for Ieee_Short_Real use record Mantisse_Sign at 0 range 31 .. 31; Exponent at 0 range 23 .. 30; Mantisse at 0 range 0 .. 22; end record; function Valid_Real (Number : Float) return Boolean is function To_Ieee_Short_Real is new Ada.Unchecked_Conversion (Float, Ieee_Short_Real); begin return To_Ieee_Short_Real (Number).Exponent /= 255; end Valid_Real; function Invalid_Real return Float is function To_Float is new Ada.Unchecked_Conversion (Ieee_Short_Real, Float); begin return To_Float (Ieee_Short_Real'(Mantisse_Sign => 0, Exponent => 255, Mantisse => 0)); end Invalid_Real; end Inline2_Pkg;