comp.lang.ada
 help / color / mirror / Atom feed
* gcc/gnat 4.1.1 bug
@ 2006-06-26 18:50 M E Leypold
  2006-06-26 18:51 ` Request: Could anybody knowing more about the Ada type system M E Leypold
  2006-06-27 20:21 ` gcc/gnat 4.1.1 bug Adam Beneschan
  0 siblings, 2 replies; 14+ messages in thread
From: M E Leypold @ 2006-06-26 18:50 UTC (permalink / raw)



Dear All,

In an attempt to circumvent the persistent problem when storing (via
the Read/Write attributes) variant record with controlled field type
I've set aside some time to try with newer compilers.

As I already reported gcc-3.4 (debian sarge package) also has the bug
in question.

Preleiminary results for gcc-4.1.1 (this time compiled) look good but
now I've found something that looks like a bug in Gcc-Gnat 4.1.1.

I'll shortly report my findings here for posteriority, then add
pointers to bug reports to relevant bug trackers when I've them
submitted. Considering the size of the code base in which the error
occurs (GtkAda 2.4.0), the fact that I've been going into that
adventure in an attempt to get rid of another much mor harmful bug and
considering that the bug actually doesn't bode well for gcc 4.1.1
anyway, I probably won't be able to follow that problem to its logical
conclusion.

Now, the bug:

When compiling GtkAda 2.4.0 (vanilla as it came from libre) with a
vanilla (as it cam from gnu.org) Gcc 4.1.1 (C, Ada enabled, no special
configuration, just configure/make/make install) I got some
gtkada-mdi.adb, announcing that at line 4774 the case 'None' would be
missing. There we find:

  ...
  4772        for Side in MDI.Docks'Range loop
  4773           Ref (MDI.Docks (Side));
  4774           case Side is
  4775              when Left | Right =>
  4776                 Widths (Side)  := Get_Allocation_Width (MDI.Docks (Side));
  4777                 Heights (Side) := 0;
  4778              when Top | Bottom =>
  4779                 Widths (Side)  := 0;
  4780                 Heights (Side) := Get_Allocation_Height (MDI.Docks (Side));
  4781           end case;
  ...

Indeed, the case 'None' is missing. MDI has the following type

  4752     procedure Set_Priorities
  4753       (MDI : access MDI_Window_Record; Prio : Priorities_Array)
  4754     is
  ...

where MDI_Window_Record is defined in the Interface as


   786     type MDI_Window_Record is new Gtk.Table.Gtk_Table_Record with record
   ...

   792        Docks : Notebook_Array := (others => null);
   793        --  The five possible docks (one on each side and one in the middle.
   ...

Ans Notebook_Array and its index range are defined as follows

    92     type Dock_Side is (Left, Right, Top, Bottom, None);
   ...
   772     type Notebook_Array is array (Left .. Bottom) of Gtk.Notebook.Gtk_Notebook;


So indeed, one would expect Side in line 4774 to be of subtype Left
.. Bottom, which it isn't (instead it seems to take the full range
Left .. None). Somehow the range is lost on the way from type
Notebook_Array to Side.

To test this, I've patched gtkada-mdi.ads like this

  4772        for Side in Notebook_Array'Range loop
  4773           Ref (MDI.Docks (Side));
  4774           case Side is

that is, to refer to Notebook_Array'Range explicitely. And voila --
everything compiles fine.

Request: Could anybody knowing more about the Ada type system state
that this is indeed a bug in gcc 4.1.1 or did some subtle point change
here between Ada 95 and Ada 2005?

If that is indeed a bug it saddens me no end: We're now back to the
old days where the type system doesn't work correctly anymore.

Regards -- Markus 





^ permalink raw reply	[flat|nested] 14+ messages in thread

* Request: Could anybody knowing more about the Ada type system ...
  2006-06-26 18:50 gcc/gnat 4.1.1 bug M E Leypold
@ 2006-06-26 18:51 ` M E Leypold
  2006-06-27 20:47   ` Jeffrey R. Carter
  2006-06-27 20:21 ` gcc/gnat 4.1.1 bug Adam Beneschan
  1 sibling, 1 reply; 14+ messages in thread
From: M E Leypold @ 2006-06-26 18:51 UTC (permalink / raw)




Request: Could anybody knowing more about the Ada type system state
that this is indeed a bug in gcc 4.1.1 or did some subtle point change
here between Ada 95 and Ada 2005?

Regards -- Markus




^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: gcc/gnat 4.1.1 bug
  2006-06-26 18:50 gcc/gnat 4.1.1 bug M E Leypold
  2006-06-26 18:51 ` Request: Could anybody knowing more about the Ada type system M E Leypold
@ 2006-06-27 20:21 ` Adam Beneschan
  2006-06-27 22:30   ` Ludovic Brenta
  2006-06-27 23:45   ` M E Leypold
  1 sibling, 2 replies; 14+ messages in thread
From: Adam Beneschan @ 2006-06-27 20:21 UTC (permalink / raw)


M E Leypold wrote:

> When compiling GtkAda 2.4.0 (vanilla as it came from libre) with a
> vanilla (as it cam from gnu.org) Gcc 4.1.1 (C, Ada enabled, no special
> configuration, just configure/make/make install) I got some
> gtkada-mdi.adb, announcing that at line 4774 the case 'None' would be
> missing. There we find:
>
>   ...
>   4772        for Side in MDI.Docks'Range loop
>   4773           Ref (MDI.Docks (Side));
>   4774           case Side is
>   4775              when Left | Right =>
>   4776                 Widths (Side)  := Get_Allocation_Width (MDI.Docks (Side));
>   4777                 Heights (Side) := 0;
>   4778              when Top | Bottom =>
>   4779                 Widths (Side)  := 0;
>   4780                 Heights (Side) := Get_Allocation_Height (MDI.Docks (Side));
>   4781           end case;
>   ...
>
> Indeed, the case 'None' is missing. MDI has the following type
>
>   4752     procedure Set_Priorities
>   4753       (MDI : access MDI_Window_Record; Prio : Priorities_Array)
>   4754     is
>   ...
>
> where MDI_Window_Record is defined in the Interface as
>
>
>    786     type MDI_Window_Record is new Gtk.Table.Gtk_Table_Record with record
>    ...
>
>    792        Docks : Notebook_Array := (others => null);
>    793        --  The five possible docks (one on each side and one in the middle.
>    ...
>
> Ans Notebook_Array and its index range are defined as follows
>
>     92     type Dock_Side is (Left, Right, Top, Bottom, None);
>    ...
>    772     type Notebook_Array is array (Left .. Bottom) of Gtk.Notebook.Gtk_Notebook;
>
>
> So indeed, one would expect Side in line 4774 to be of subtype Left
> .. Bottom, which it isn't (instead it seems to take the full range
> Left .. None). Somehow the range is lost on the way from type
> Notebook_Array to Side.
>
> To test this, I've patched gtkada-mdi.ads like this
>
>   4772        for Side in Notebook_Array'Range loop
>   4773           Ref (MDI.Docks (Side));
>   4774           case Side is
>
> that is, to refer to Notebook_Array'Range explicitely. And voila --
> everything compiles fine.
>
> Request: Could anybody knowing more about the Ada type system state
> that this is indeed a bug in gcc 4.1.1 or did some subtle point change
> here between Ada 95 and Ada 2005?


I think it was a bug for the compiler to accept the above code (i.e.
the code before you patched it).  It's not legal in either Ada 95 or
Ada 2005 as far as I can tell.  (And you can't assume that Ada code you
get from a public source is legal.  I've found numerous examples of
illegal code that still gets distributed because it's only been tried
on one compiler and that compiler has a bug.)

Here's how I piece things together: 3.6.2(7) says that for an array A,
A'Range is equivalent to A'First..A'Last (except that A is evaluated
only once).  4.9(8) says that a 'First or 'Last attribute reference is
static if its prefix statically denotes a statically constrained array
object.  4.9(14) defines what "statically denotes" means: the prefix
has to refer to a "direct name", "expanded name", or character literal.

However, MDI.Docks is not any of these.  A direct name is a simple
identifier, and an expanded name is just like a direct name except that
it could be qualified with package names or names of subprograms or
blocks that you're inside, or things like that.  MDI is an access
object, however.

This means that the prefix of MDI.Docks'Range does not statically
denote anything, and therefore MDI.Docks'First and 'Last (and therefore
'Range) are not static.  Thus, the subtype of "Side" is *not* a static
subtype.

The rules for a CASE statement say that if the index's type is a static
subtype, the choices must cover just that subtype range; while if it's
not a static subtype, the choices must cover the entire base range.  So
it's correct for the compiler to require that None be one of the
choices, and incorrect for the compiler to accept a CASE statement that
doesn't have that choice (or an "others" clause).  As far as I can
tell, none of the relevant rules have changed between Ada 95 and Ada
2005; therefore, the Ada 95 compiler was incorrect.

This does seem counter-intuitive.  But apparently requiring that the
prefix of 'First *statically* *denotes* the array object was put there
deliberately, and I'm sure there was a good reason, although I don't
know what it is.  In general, if you apply 'First on something that you
have to go through an access value to get to, the compiler has to make
sure the access value is not null, even if the 'First could be
determined at compile time (see the next paragraph).  Considering a
value that requires a null check to be "static" would undoubtedly cause
problems for other parts of the language.

(In Ada 95, MDI is not allowed to be null; in Ada 2005, it is.  Perhaps
that's why the Ada 95 compiler erroneously accepted the program: since
no null check was necessary, the compiler viewed MDI.Docks'First as a
constant, and then erroneously decided that it must be static, while
the Ada 2005 compiler includes a "null check" as part of the logic to
compute the value of 'First.  However, I don't see how whether null is
a legal value or not affects whether the attribute reference is treated
as static by 4.9.  Experiment: Change the definition of MDI from
"access MDI_Window_Record" to "not null access MDI_Window_Record".  If
this causes the program to compile, then the Ada 2005 compiler is wrong
too.)

Hope this helps.

Also, I assume that if I got something wrong, someone more
knowledgeable than I will correct me.

                                    -- Adam




^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Request: Could anybody knowing more about the Ada type system ...
  2006-06-26 18:51 ` Request: Could anybody knowing more about the Ada type system M E Leypold
@ 2006-06-27 20:47   ` Jeffrey R. Carter
  2006-06-27 23:25     ` M E Leypold
  0 siblings, 1 reply; 14+ messages in thread
From: Jeffrey R. Carter @ 2006-06-27 20:47 UTC (permalink / raw)


M E Leypold wrote:
> 
> Request: Could anybody knowing more about the Ada type system state
> that this is indeed a bug in gcc 4.1.1 or did some subtle point change
> here between Ada 95 and Ada 2005?

This kind of error existed in earlier versions of GNAT. I've sometimes used

when [values not in subtype] =>
    raise Program_Error;

to work around the error.

-- 
Jeff Carter
"Many times we're given rhymes that are quite unsingable."
Monty Python and the Holy Grail
57



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: gcc/gnat 4.1.1 bug
  2006-06-27 20:21 ` gcc/gnat 4.1.1 bug Adam Beneschan
@ 2006-06-27 22:30   ` Ludovic Brenta
  2006-06-27 23:45   ` M E Leypold
  1 sibling, 0 replies; 14+ messages in thread
From: Ludovic Brenta @ 2006-06-27 22:30 UTC (permalink / raw)


Adam, I think your explanation is correct, and sufficient to construct
a minimal test case. But now I'm going to bed :)

-- 
Ludovic Brenta.



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Request: Could anybody knowing more about the Ada type system ...
  2006-06-27 20:47   ` Jeffrey R. Carter
@ 2006-06-27 23:25     ` M E Leypold
  2006-06-28  2:33       ` Jeffrey R. Carter
  0 siblings, 1 reply; 14+ messages in thread
From: M E Leypold @ 2006-06-27 23:25 UTC (permalink / raw)



"Jeffrey R. Carter" <spam.not.jrcarter@acm.not.spam.org> writes:

> M E Leypold wrote:
> > Request: Could anybody knowing more about the Ada type system state
> > that this is indeed a bug in gcc 4.1.1 or did some subtle point change
> > here between Ada 95 and Ada 2005?
> 
> This kind of error existed in earlier versions of GNAT. I've sometimes used
> 
> when [values not in subtype] =>
>     raise Program_Error;
> 
> to work around the error.

If you remember: 3.15p didn't have the bug?  And it comes back in 4.1.1? Wow.

Regards (and thanks) -- Markus




^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: gcc/gnat 4.1.1 bug
  2006-06-27 20:21 ` gcc/gnat 4.1.1 bug Adam Beneschan
  2006-06-27 22:30   ` Ludovic Brenta
@ 2006-06-27 23:45   ` M E Leypold
  2006-06-28  0:22     ` Adam Beneschan
  1 sibling, 1 reply; 14+ messages in thread
From: M E Leypold @ 2006-06-27 23:45 UTC (permalink / raw)



"Adam Beneschan" <adam@irvine.com> writes:
> > Request: Could anybody knowing more about the Ada type system state
> > that this is indeed a bug in gcc 4.1.1 or did some subtle point change
> > here between Ada 95 and Ada 2005?
> 
> 
> I think it was a bug for the compiler to accept the above code (i.e.
> the code before you patched it).  It's not legal in either Ada 95 or


Just say that again: "for i in a'Range" is illegal if a is an array
variable? I don't understand.

> Ada 2005 as far as I can tell.  (And you can't assume that Ada code you
> get from a public source is legal.  I've found numerous examples of
> illegal code that still gets distributed because it's only been tried
> on one compiler and that compiler has a bug.)

That I understand very well: Gnat 3.15p accepted a number of
constructs in my program that were plainly illegal and which I had to
change when going to 4.1.1. Like that with

  generic

     type Element_Type is ...;

  package Alib.Set ....


a reference of the kind 

  S.Element_Type 

was legal (for S being an instance of the generic) whereas I
understand that should not have been the case.

> Here's how I piece things together: 3.6.2(7) says that for an array A,
> A'Range is equivalent to A'First..A'Last (except that A is evaluated

Ahh, here it comes.

> only once).  4.9(8) says that a 'First or 'Last attribute reference is
> static if its prefix statically denotes a statically constrained array
> object.  4.9(14) defines what "statically denotes" means: the prefix
> has to refer to a "direct name", "expanded name", or character literal.

> However, MDI.Docks is not any of these.  A direct name is a simple
> identifier, and an expanded name is just like a direct name except that
> it could be qualified with package names or names of subprograms or
> blocks that you're inside, or things like that.  MDI is an access
> object, however.

Sounds logical. I'll have to follow that on a weekend again when I
have more time.

> This means that the prefix of MDI.Docks'Range does not statically
> denote anything, and therefore MDI.Docks'First and 'Last (and therefore
> 'Range) are not static.  Thus, the subtype of "Side" is *not* a static
> subtype.

I can see, why that rule has bee introduced. But: Apart from how that
is formulated in the RM: Either MDI is null, than the dereferencing
fails and the case will not be executed or it is not null, then refers
to a range which is fixed at compile time. 

It might not be static in the sense of the letter in the RM, but it
certainly is in effect (uh - am I clear?). So I wonder why the
restriction (no access type) was introduced.

> 
> The rules for a CASE statement say that if the index's type is a static
> subtype, the choices must cover just that subtype range; while if it's
> not a static subtype, the choices must cover the entire base range.  So
> it's correct for the compiler to require that None be one of the
> choices, and incorrect for the compiler to accept a CASE statement that
> doesn't have that choice (or an "others" clause).  As far as I can
> tell, none of the relevant rules have changed between Ada 95 and Ada
> 2005; therefore, the Ada 95 compiler was incorrect.

OK.

> This does seem counter-intuitive.  

Yes.

> But apparently requiring that the prefix of 'First *statically*
> *denotes* the array object was put there deliberately, and I'm sure
> there was a good reason, although I don't know what it is.

I'd like to hear about that reason if anybody here knows about it. I'm
not only a complainer about license issues but also an avid
connoisseur of languages :-).

> In general, if you apply 'First on something that you
> have to go through an access value to get to, the compiler has to make
> sure the access value is not null, even if the 'First could be
> determined at compile time (see the next paragraph).  

> Considering a value that requires a null check to be "static" would
> undoubtedly cause problems for other parts of the language.

That is the point I don't see. I don't come the parts where the static
value is used except if the access value is /= null. So within the
block in question, actually starting from the ' of 'First, the access
value is guaranteed to be not null (like with access
discriminants). And this is a static condition applying to the block
in question. 

(I hope I'm understandable here: I'm not very well versed in the
jargon of the ARM, so please, just ignore me if I become garbled)


> 
> (In Ada 95, MDI is not allowed to be null; in Ada 2005, it is.  Perhaps
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Why that?

> that's why the Ada 95 compiler erroneously accepted the program: since
> no null check was necessary, the compiler viewed MDI.Docks'First as a
> constant, and then erroneously decided that it must be static, while
> the Ada 2005 compiler includes a "null check" as part of the logic to
> compute the value of 'First.  However, I don't see how whether null is
> a legal value or not affects whether the attribute reference is treated
> as static by 4.9.  Experiment: Change the definition of MDI from
> "access MDI_Window_Record" to "not null access MDI_Window_Record".  If
> this causes the program to compile, then the Ada 2005 compiler is wrong
> too.)

I see. I'll have to postpone that experiment. I already pickled the
compiler and put it into my bit cellar for the winter and I'm now
trying to teach 3.15p not to barf on my data structure (which was the
original reason for this excursion).

> 
> Hope this helps.

It does. At last I can see, were I have to look. :-)

Thanks.

Regards -- Markus




^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: gcc/gnat 4.1.1 bug
  2006-06-27 23:45   ` M E Leypold
@ 2006-06-28  0:22     ` Adam Beneschan
  2006-06-28  2:15       ` M E Leypold
  0 siblings, 1 reply; 14+ messages in thread
From: Adam Beneschan @ 2006-06-28  0:22 UTC (permalink / raw)


M E Leypold wrote:

> > This means that the prefix of MDI.Docks'Range does not statically
> > denote anything, and therefore MDI.Docks'First and 'Last (and therefore
> > 'Range) are not static.  Thus, the subtype of "Side" is *not* a static
> > subtype.
>
> I can see, why that rule has bee introduced. But: Apart from how that
> is formulated in the RM: Either MDI is null, than the dereferencing
> fails and the case will not be executed or it is not null, then refers
> to a range which is fixed at compile time.
>
> It might not be static in the sense of the letter in the RM, but it
> certainly is in effect (uh - am I clear?). So I wonder why the
> restriction (no access type) was introduced.

I think what you're saying is clear.

What's worse, perhaps, is that there's a difference even if no access
type is involved.  The rule in 4.8(14) also means "statically denotes"
doesn't apply to record components, so that in this case:

   type Enum is (e1, e2, e3, e4, e5);
   subtype Enum_Subtype is Enum range e2..e4;
   type Arr is array (Enum_Subtype) of integer;
   type Rec is record
      f1 : Arr;
   end record;

   X : Arr;
   Y : Rec;

   for J in X'Range loop        -- J's subtype is static
   for K in Y.f1'Range loop     -- K's subtype is not static

if my understanding is correct.

However, it's not feasible to expect the language designers to handle
every little case and combination of cases and combination of
combinations of cases so that things do what you expect, all the time.
Any change to the definition of "staticness" is going to have a
potential impact on approximately 6.023*(10**23) other places in the
RM, and all of them would need to studied before any change can be
made.  And believe me, the amount of work the language designers
already do is incredible, as it is.


> > (In Ada 95, MDI is not allowed to be null; in Ada 2005, it is.  Perhaps
>                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> Why that?

Anonymous access types were added in Ada 95, and the only places they
were allowed were in subprogram parameters and discriminants.  In both
cases, they were added for a specific purpose for which named access
types were unsuitable, and null values didn't need to be handled for
those purposes.  For Ada 2005, anonymous access types were further
generalized and allowed in more places,
and it was decided it would be a good idea to allow null values; the
best solution involved changing the definition of access parameters so
that null values were allowed by default.  If you're interested in more
details, check out
http://www.ada-auth.org/cgi-bin/cvsweb.cgi/AIs/AI-00231.TXT .

                                 -- Adam




^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: gcc/gnat 4.1.1 bug
  2006-06-28  0:22     ` Adam Beneschan
@ 2006-06-28  2:15       ` M E Leypold
  0 siblings, 0 replies; 14+ messages in thread
From: M E Leypold @ 2006-06-28  2:15 UTC (permalink / raw)



"Adam Beneschan" <adam@irvine.com> writes:
> 
> However, it's not feasible to expect the language designers to handle
> every little case and combination of cases and combination of
> combinations of cases so that things do what you expect, all the time.

Yep. As I see it, that is - finally - the price one just has to pay
for the rather complex subtyping Ada provides.

> Any change to the definition of "staticness" is going to have a
> potential impact on approximately 6.023*(10**23) other places in the
> RM, and all of them would need to studied before any change can be
> made.  And believe me, the amount of work the language designers
> already do is incredible, as it is.

I believe that very well. I've been learning Ada mostly from Barnes
"Programming in Ada 95" and there has been many a time when I read and
thought "Wow, there is a language that finally does it right" or "I'd
never have been able to design this language". Even if it is probably
an overestimation of one's own capabilities, Pascal, Modula, C and
others just look like languages that one could have designed oneself
with a bit of work and patience. Not the details of their modern
incarnations, but the general outline.  After all, they were designed
in principle by single persons. But with Ada: Never. Where those other
languages are just either nicely architected houses or grown villages,
Ada is a cathedral. Beautiful, mathematical and complete.

Did i alread mention that I find the ARM quite readable? Have you ever
tried to read one of the C standards?


> > > (In Ada 95, MDI is not allowed to be null; in Ada 2005, it is.  Perhaps
> >                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >
> > Why that?
> 
> Anonymous access types were added in Ada 95, and the only places they

Yes of course. Me stupid, I see now. :-).

> were allowed were in subprogram parameters and discriminants.  In both
> cases, they were added for a specific purpose for which named access
> types were unsuitable, and null values didn't need to be handled for
> those purposes.  For Ada 2005, anonymous access types were further
> generalized and allowed in more places,
> and it was decided it would be a good idea to allow null values; the
> best solution involved changing the definition of access parameters so
> that null values were allowed by default.  If you're interested in more

Yes, it's probably better like that. All that non allowing null here
and there but elsewhere didn't keep me from shooting myself into my
own foot in Ada 95, but only made me defining more named access types.

But probably I'm misusing the language in a number of areas anyway.

> details, check out
> http://www.ada-auth.org/cgi-bin/cvsweb.cgi/AIs/AI-00231.TXT .

I will. I already skimmed Barnes excellent introduction into the new
features of Ada 2005 some time ago and it was a delight.

Regards -- Markus




^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Request: Could anybody knowing more about the Ada type system ...
  2006-06-27 23:25     ` M E Leypold
@ 2006-06-28  2:33       ` Jeffrey R. Carter
  2006-06-28  2:52         ` M E Leypold
  0 siblings, 1 reply; 14+ messages in thread
From: Jeffrey R. Carter @ 2006-06-28  2:33 UTC (permalink / raw)


M E Leypold wrote:
> 
> If you remember: 3.15p didn't have the bug?  And it comes back in 4.1.1? Wow.

3.15p did the same thing, IIRC. And, after reading Beneschan's post, 
maybe what I ran into was that kind of thing, and it wasn't an error 
after all.

-- 
Jeff Carter
"Many times we're given rhymes that are quite unsingable."
Monty Python and the Holy Grail
57



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Request: Could anybody knowing more about the Ada type system ...
  2006-06-28  2:33       ` Jeffrey R. Carter
@ 2006-06-28  2:52         ` M E Leypold
  2006-06-28  2:53           ` M E Leypold
  0 siblings, 1 reply; 14+ messages in thread
From: M E Leypold @ 2006-06-28  2:52 UTC (permalink / raw)



"Jeffrey R. Carter" <spam.not.jrcarter@acm.not.spam.org> writes:

> M E Leypold wrote:
> > If you remember: 3.15p didn't have the bug?  And it comes back in
> > 4.1.1? Wow.
> 
> 3.15p did the same thing, IIRC. And, after reading Beneschan's post,
> maybe what I ran into was that kind of thing, and it wasn't an error
> after all.

Well, what I compiled there was GtkAda 2.4.0 which supposedly built
with Gnat without evoking that error. I'll check that some time when
I've the leisure.

Regards -- Markus



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Request: Could anybody knowing more about the Ada type system ...
  2006-06-28  2:52         ` M E Leypold
@ 2006-06-28  2:53           ` M E Leypold
  2006-06-28 20:06             ` Ludovic Brenta
  0 siblings, 1 reply; 14+ messages in thread
From: M E Leypold @ 2006-06-28  2:53 UTC (permalink / raw)



M E Leypold <development-2006-8ecbb5cc8aREMOVETHIS@ANDTHATm-e-leypold.de> writes:

> "Jeffrey R. Carter" <spam.not.jrcarter@acm.not.spam.org> writes:
> 
> > M E Leypold wrote:
> > > If you remember: 3.15p didn't have the bug?  And it comes back in
> > > 4.1.1? Wow.
> > 
> > 3.15p did the same thing, IIRC. And, after reading Beneschan's post,
> > maybe what I ran into was that kind of thing, and it wasn't an error
> > after all.
> 
> Well, what I compiled there was GtkAda 2.4.0 which supposedly built
> with Gnat without evoking that error. I'll check that some time when

"with Gnat 3.15p"

> I've the leisure.
> 
> Regards -- Markus



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Request: Could anybody knowing more about the Ada type system ...
  2006-06-28  2:53           ` M E Leypold
@ 2006-06-28 20:06             ` Ludovic Brenta
  2006-06-28 22:38               ` M E Leypold
  0 siblings, 1 reply; 14+ messages in thread
From: Ludovic Brenta @ 2006-06-28 20:06 UTC (permalink / raw)


GtkAda is known to contain some illegal code that GNAT 3.15p
mistakenly accepts.

See Debian bugs #249663, #249664 and #249665 (http://bugs.debian.org)

-- 
Ludovic Brenta.



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Request: Could anybody knowing more about the Ada type system ...
  2006-06-28 20:06             ` Ludovic Brenta
@ 2006-06-28 22:38               ` M E Leypold
  0 siblings, 0 replies; 14+ messages in thread
From: M E Leypold @ 2006-06-28 22:38 UTC (permalink / raw)




Ludovic Brenta <ludovic@ludovic-brenta.org> writes:

> GtkAda is known to contain some illegal code that GNAT 3.15p
> mistakenly accepts.
> 
> See Debian bugs #249663, #249664 and #249665 (http://bugs.debian.org)

Ah! Thanks. 

Regards -- Markus



^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2006-06-28 22:38 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-06-26 18:50 gcc/gnat 4.1.1 bug M E Leypold
2006-06-26 18:51 ` Request: Could anybody knowing more about the Ada type system M E Leypold
2006-06-27 20:47   ` Jeffrey R. Carter
2006-06-27 23:25     ` M E Leypold
2006-06-28  2:33       ` Jeffrey R. Carter
2006-06-28  2:52         ` M E Leypold
2006-06-28  2:53           ` M E Leypold
2006-06-28 20:06             ` Ludovic Brenta
2006-06-28 22:38               ` M E Leypold
2006-06-27 20:21 ` gcc/gnat 4.1.1 bug Adam Beneschan
2006-06-27 22:30   ` Ludovic Brenta
2006-06-27 23:45   ` M E Leypold
2006-06-28  0:22     ` Adam Beneschan
2006-06-28  2:15       ` M E Leypold

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