s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
authorEric Botcazou <ebotcazou@adacore.com>
Thu, 16 Jun 2005 08:44:56 +0000 (10:44 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Thu, 16 Jun 2005 08:44:56 +0000 (10:44 +0200)
2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>

* s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.

From-SVN: r101055

gcc/ada/s-atacco.ads

index 6f8bd94..7ccb339 100644 (file)
@@ -62,6 +62,13 @@ pragma Elaborate_Body;
    type Object_Pointer is access all Object;
    for Object_Pointer'Size use Standard'Address_Size;
 
+   pragma No_Strict_Aliasing (Object_Pointer);
+   --  Strictly speaking, this routine should not be used to generate pointers
+   --  to other than proper values of the proper type, but in practice, this
+   --  is done all the time. This pragma stops the compiler from doing some
+   --  optimizations that may cause unexpected results based on the assumption
+   --  of no strict aliasing.
+
    function To_Pointer (Value : Address)        return Object_Pointer;
    function To_Address (Value : Object_Pointer) return Address;