comp.lang.ada
 help / color / mirror / Atom feed
From: "(see below)" <yaldnif.w@blueyonder.co.uk>
Subject: Re: GNAT GPL 2009 for Mac OS X (Snow Leopard)
Date: Wed, 23 Dec 2009 03:29:14 +0000
Date: 2009-12-23T03:29:14+00:00	[thread overview]
Message-ID: <C7573F0A.12F81C%yaldnif.w@blueyonder.co.uk> (raw)
In-Reply-To: 96854a61-2032-49b1-a8b2-8a5aee181701@22g2000yqr.googlegroups.com

On 22/12/2009 23:37, in article
96854a61-2032-49b1-a8b2-8a5aee181701@22g2000yqr.googlegroups.com, "sjw"
<simon.j.wright@mac.com> wrote:
 
> Have just uploaded gnat-gpl-2009-i386-apple-darwin10.2.0-1.tar.bz2,
> without the dependency; will remove the offending files after a day or
> two.

Unfortunately, it goes very badly wrong at -O1 optimization level on another
example:

----------------------------------------------------------------------------
package test is
   type i64 is mod 2**64;
   for  i64'Size use 64;
   subtype a_virtual_address is i64;
   subtype an_offset is a_virtual_address;

   function fetch_byte_from (
         location : i64;
         position : an_offset )
   return i64;
end test;
--
package body test is
   type i08 is mod 2**8;
   for  i08'Size use 8;
   type an_i08_array is array (a_virtual_address range <>) of i08;
   for  an_i08_array'Component_Size use i08'Size;
   type an_i08_group is new an_i08_array (0..7);
   for  an_i08_group'Size use i64'Size;
   pragma Convention (C, an_i08_group);

   function fetch_byte_from (
         location : i64;
         position : an_offset )
   return i64 is
      the_location_as_i08s : an_i08_group;
      for the_location_as_i08s'Address use location'Address;
      pragma Import (Ada, the_location_as_i08s);
   begin
      return i64(the_location_as_i08s
                  ((position and 2#111#) xor 2#111#));
   end fetch_byte_from;
end test;
----------------------------------------------------------------------------

thus:

+===========================GNAT BUG DETECTED==============================+
| GPL 2009 (20090519) (i386-apple-darwin10.2.0) GCC error:                 |
| in gnat_to_gnu_entity, at ada/gcc-interface/decl.c:312                   |
| Error detected at test.adb:14:7                                          |
...

This error message does not appear at -O3, but the generated object program
is non-functional, although that may be for a different reason, of course.

This code compiled and ran correctly under the Leopard compilers I was using
until I stupidly installed SL.

What on earth has happened for GNAT to regress so badly in the face of what
is often described as a tidying-up and performance release of OS X?

-- 
Bill Findlay
<surname><forename> chez blueyonder.co.uk





  reply	other threads:[~2009-12-23  3:29 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-22 12:09 GNAT GPL 2009 for Mac OS X (Snow Leopard) sjw
2009-12-22 14:23 ` (see below)
2009-12-22 17:10   ` sjw
2009-12-22 17:46     ` (see below)
2009-12-22 21:52       ` sjw
2009-12-22 23:37         ` sjw
2009-12-23  3:29           ` (see below) [this message]
2009-12-23 14:26             ` sjw
2009-12-23 17:18               ` (see below)
2009-12-23 23:44                 ` sjw
2009-12-24  0:01                   ` (see below)
2009-12-24 14:50                     ` sjw
2009-12-24 15:31                       ` John B. Matthews
2009-12-24 17:24                         ` sjw
2009-12-24 19:20                           ` (see below)
2009-12-25  4:30                             ` (see below)
2009-12-25 17:59                               ` sjw
2009-12-25 17:32                             ` sjw
2009-12-26  0:54                               ` (see below)
2009-12-23 21:16             ` Jerry
2009-12-23 23:38               ` sjw
2009-12-23  0:08         ` (see below)
2009-12-23 13:48           ` Georg Bauhaus
2009-12-23 17:21             ` (see below)
2009-12-24 15:01     ` sjw
2009-12-30  3:12       ` Jerry
2009-12-30 14:46         ` sjw
2009-12-25 17:52     ` sjw
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox