"Christoph Grein" a �crit dans le message news: >The only problem being that your compiler might reject to compile this because >it cannot fulfil the request. My_Int'Base will necessarily be a _signed_integer_ >at least big enough to hold the specified range, will thus need at least 33 >bits, most probably a 64 bit >type. True, but there is no requirement that T'Base occupies the same number of bits as T. I just tried the following with Gnat: type Int32 is range 0..2**32-1; for Int32'size use 32; I : Int32; B: Int32'Base; begin Put_Line (Integer'image (I'size)); Put_Line (Integer'Image (B'size)); And it prints: 32 64 (note the use of 'size on objects rather than types - necessary to get the truth about how much memory space is used) -- --------------------------------------------------------- J-P. Rosen (rosen@adalog.fr) Visit Adalog's web site at http://www.adalog.fr