]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/ada/g-debuti.ads
3psoccon.ads, [...]: Files added.
[thirdparty/gcc.git] / gcc / ada / g-debuti.ads
index 334b103d43f7486081224e568e0b029f7e85388b..470c2867f596a4d3d90f02222935a28d90147538 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---           Copyright (C) 1995-1998 Ada Core Technologies, Inc.            --
+--           Copyright (C) 1995-2003 Ada Core Technologies, Inc.            --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -26,7 +26,8 @@
 -- however invalidate  any other reasons why  the executable file  might be --
 -- covered by the  GNU Public License.                                      --
 --                                                                          --
--- GNAT is maintained by Ada Core Technologies Inc (http://www.gnat.com).   --
+-- GNAT was originally developed  by the GNAT team at  New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc.      --
 --                                                                          --
 ------------------------------------------------------------------------------
 
@@ -40,22 +41,43 @@ with System;
 package GNAT.Debug_Utilities is
 pragma Pure (Debug_Utilities);
 
+   Address_64 : constant Boolean := Standard'Address_Size = 64;
+   --  Set true if 64 bit addresses (assumes only 32 and 64 are possible)
+
+   Address_Image_Length : constant := 13 + 10 * Boolean'Pos (Address_64);
+   --  Length of string returned by Image function for an address
+
+   subtype Image_String is String (1 .. Address_Image_Length);
+   --  Subtype returned by Image function for an address
+
+   Address_Image_C_Length : constant := 10 + 8 * Boolean'Pos (Address_64);
+   --  Length of string returned by Image_C function
+
+   subtype Image_C_String is String (1 .. Address_Image_C_Length);
+   --  Subtype returned by Image_C function
+
    function Image (S : String) return String;
    --  Returns a string image of S, obtained by prepending and appending
    --  quote (") characters and doubling any quote characters in the string.
    --  The maximum length of the result is thus 2 ** S'Length + 2.
 
-   Address_Image_Length : constant :=
-                            13 + 10 * Boolean'Pos (Standard'Address_Size > 32);
-   --  Length of string returned by Image function
-
-   function Image (A : System.Address) return String;
-   --  Returns a string of the form 16#xxxx_xxxx# for 32-bit addresses
-   --  or 16#xxxx_xxxx_xxxx_xxxx# for 64-bit addresses. Hex characters
+   function Image (A : System.Address) return Image_String;
+   --  Returns a string of the form 16#hhhh_hhhh# for 32-bit addresses
+   --  or 16#hhhh_hhhh_hhhh_hhhh# for 64-bit addresses. Hex characters
    --  are in upper case.
 
+   function Image_C (A : System.Address) return Image_C_String;
+   --  Returns a string of the form 0xhhhhhhhh for 32 bit addresses or
+   --  0xhhhhhhhhhhhhhhhh for 64-bit addresses. Hex characters are in
+   --  upper case.
+
    function Value (S : String) return System.Address;
    --  Given a valid integer literal in any form, including the form returned
    --  by the Image function in this package, yields the corresponding address.
+   --  Note that this routine will handle any Ada integer format, and will
+   --  also handle hex constants in C format (0xhh..hhh). Constraint_Error
+   --  may be raised for obviously incorrect data, but the routine is fairly
+   --  permissive, and in particular, all underscores in whatever position
+   --  are simply ignored completely.
 
 end GNAT.Debug_Utilities;