From: Tucker Taft <stt@averstar.com>
Subject: Re: Representation Clauses And Freezing
Date: 2000/07/18
Date: 2000-07-18T16:56:45+00:00 [thread overview]
Message-ID: <39748C4D.AD3F0B47@averstar.com> (raw)
In-Reply-To: 3973192E.E7337814@acm.com
"Marin D. Condic" wrote:
>
> I am trying to find a reasonable workaround to a problem involving
> representation clauses and tagged records. I believe I am running into
> problems with freezing rules. Below are two compiler listings which are
> very similar. When the record type is visible, the compiler is happy.
> When the record type is private, it complains. The question in my mind
> is *WHY* is there some sort of restriction on this? What compiler
> mission cannot be achieved unless the record is visible? Is there some
> sort of workaround that would enable representation clauses on private
> tagged records? (Inheritance from a rep-claused-tagged-record is its own
> problem!)
The behavior is mysterious, and probably just a bug. I would report
it to the compiler vendor, and see what they say.
-Tuck
>
> GNAT 3.12p (19990629) Copyright 1992-1999 Free Software Foundation,
> Inc.
>
> Compiling: rep_clause_01.ads (source file time stamp: 2000-07-17
> 14:20:14)
>
> 1. with System ;
> 2.
> 3. package Rep_Clause_01 is
> 4.
> 5. type UInteger_16 is mod 2**16 ;
> 6. for UInteger_16'Size use 16 ;
> 7.
> 8. type Rec_Type is tagged record
> 9. Field_01 : Uinteger_16 := 0 ;
> 10. Field_02 : Uinteger_16 := 0 ;
> 11. Field_03 : Uinteger_16 := 0 ;
> 12. end record ;
> 13.
> 14. private
> 15.
> 16. for Rec_Type use record
> 17. Field_01 at 4 range 0..15 ;
> 18. Field_02 at 6 range 0..15 ;
> 19. Field_03 at 8 range 0..15 ;
> 20. end record ;
> 21.
> 22. for Rec_Type'Size use 10 * System.Storage_Unit ;
> 23. for Rec_Type'Alignment use 2 ;
> 24.
> 25. end Rep_Clause_01 ;
>
> 25 lines: No errors
>
> GNAT 3.12p (19990629) Copyright 1992-1999 Free Software Foundation,
> Inc.
>
> Compiling: rep_clause_02.ads (source file time stamp: 2000-07-17
> 14:20:14)
>
> 1.
> 2. with System ;
> 3.
> 4. package Rep_Clause_02 is
> 5.
> 6. type UInteger_16 is mod 2**16 ;
> 7. for UInteger_16'Size use 16 ;
> 8.
> 9. type Rec_Type is tagged private ;
> 10.
> 11. private
> 12.
> 13. type Rec_Type is tagged record
> 14. Field_01 : Uinteger_16 := 0 ;
> 15. Field_02 : Uinteger_16 := 0 ;
> 16. Field_03 : Uinteger_16 := 0 ;
> 17. end record ;
> 18.
> 19. for Rec_Type use record
> 20. Field_01 at 4 range 0..15 ;
> 21. Field_02 at 6 range 0..15 ;
> 22. Field_03 at 8 range 0..15 ;
> 23. end record ;
> 24.
> 25. for Rec_Type'Size use 10 * System.Storage_Unit ;
> |
> >>> size for "Rec_Type" too small, minimum allowed is 128
>
> 26. for Rec_Type'Alignment use 2 ;
> |
> >>> alignment for "Rec_Type" must be at least 4
>
> 27.
> 28. end Rep_Clause_02 ;
>
> MDC
> --
> ======================================================================
> Marin David Condic - Quadrus Corporation - http://www.quadruscorp.com/
> Send Replies To: m c o n d i c @ q u a d r u s c o r p . c o m
> Visit my web site at: http://www.mcondic.com/
>
> "Nothing in the world is more dangerous than sincere ignorance and
> conscientious stupidity."
>
> -- Martin Luther King, Jr
> ======================================================================
--
-Tucker Taft stt@averstar.com http://www.averstar.com/~stt/
Technical Director, Commercial Division, AverStar (formerly Intermetrics)
(http://www.averstar.com/services/IT_consulting.html) Burlington, MA USA
prev parent reply other threads:[~2000-07-18 0:00 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-07-17 0:00 Representation Clauses And Freezing Marin D. Condic
2000-07-17 0:00 ` Stephen Leake
2000-07-20 0:00 ` Marin D. Condic
2000-07-20 0:00 ` Stephen Leake
2000-07-21 0:00 ` Marin D. Condic
2000-07-21 0:00 ` Simon Wright
2000-07-22 0:00 ` Marin D. Condic
2000-07-22 0:00 ` tmoran
2000-07-22 0:00 ` Marin D. Condic
2000-07-24 0:00 ` Ted Dennison
2000-07-21 0:00 ` Stephen Leake
2000-07-21 0:00 ` Marin D. Condic
2000-07-21 0:00 ` tmoran
2000-07-18 0:00 ` Nicolas Brunot
2000-07-18 0:00 ` Tucker Taft [this message]
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox