Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gnat.dg/inline2_pkg.adb @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +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;