comp.lang.ada
 help / color / mirror / Atom feed
From: "bklungle" <bklungle@ix.netcom.com>
Subject: Re: GNAT Limitations?
Date: 1998/01/25
Date: 1998-01-25T00:44:17-08:00	[thread overview]
Message-ID: <01bd296e$fad757c0$0e2915c0@p5120> (raw)
In-Reply-To: 6aesm3$sr6$1@Masala.CC.UH.EDU


1. Read the manual
2. Remove Ada.
3. Put the (n) where it belongs

enclosed

with Unchecked_Deallocation;

procedure Huh is

  type x is
    record
      a : integer := 0;
      b : integer := 0;
      c : integer := 0;
    end record;
  type x_ptr is access x;

  procedure dispose is new Unchecked_Deallocation(x, x_ptr);

  an_x : x := (a => 1, b => 2, c => 3);

  type m is array(1..2, 1..3) of integer;
  an_m : m := (others => (others => 0));

begin
  for i in an_m'range(1) loop
    for j in an_m'range(2) loop
      an_m(i,j) := i;
    end loop;
  end loop;
end Huh;


-- and then compile

linux:~/atest> touch *.adb
linux:~/atest> ada huh.adb
gcc -c -g huh.adb
gnatbind -x huh.ali
gnatlink -g huh.ali
linux:~/atest> 


wanker@exploited.barmy.army wrote in article
<6aesm3$sr6$1@Masala.CC.UH.EDU>...
> Hi all,
> 
> On GNAT 3.09 (Win95) I find two problems that I can't find mentioned
> anywhere in the documentation:
> 	1) GNAT refuses to let me initialize a record with named
> 		fields if I don't initialize every field.  For
> 		example:
> 
> 		type X is
> 		    record
> 			A : Integer := 1;
> 			B : Integer := 2;
> 			C : Integer := 3;
> 		    end record;
> 
> 		A_Rec : X := (A => 5, C => 6);
> 
> 		Gives me an error with something like "No value
> 		provided for B".  However, according to the
> 		"C/C++ to Ada" Guide I am supposed to be able
> 		to do this.  What gives?
> 
> 	2) When I try to instantiate Ada.Unchecked_Deallocation,
> 		GNAT claims that Unchecked_Deallocation is not
> 		in Ada, which contradicts what's in the Language
> 		Referenec Manual and the "C/C++ to Ada Guide".
> 		Again, what gives?
> 
> 	3) GNAT refuses to compile code where I try to find the
> 		range of a particular dimension of a multi-dimensional
> 		array.  I'm using the example in the C/C++ to
> 		Ada Guide:
> 
> 			-- Assuming Matrix is a 2d array type
> 			
> 			for I in Matrix(1)'Range loop
> 			    for J in Matrix(2)'Range loop
> 				Some_Op (Matrix (I, J));
> 		 	    end loop;
> 			end loop;
> 
> 		The compiler complains about using an attribute
> 		and indexing Matrix at the same time.  
> 
> Has anyone else been having any of the above problems?  If so,
> is there some kind of workaround?  
> 
> 
> 




  reply	other threads:[~1998-01-25  0:00 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1998-01-25  0:00 GNAT Limitations? wanker
1998-01-25  0:00 ` bklungle [this message]
1998-01-25  0:00   ` wanker
1998-01-26  0:00     ` Stephen Leake
1998-01-26  0:00       ` Nick Roberts
     [not found]     ` <EnECID.GyI@world.std.com>
     [not found]       ` <EnIJ7B.8CB@world.std.com>
1998-01-29  0:00         ` Nick Roberts
1998-01-29  0:00         ` bklungle
1998-01-25  0:00 ` Keith Thompson
1998-01-25  0:00   ` wanker
1998-01-26  0:00     ` Nick Roberts
1998-02-18  0:00 ` Ed Colbert
     [not found] <6aesm3$sr6$1@masala.cc.uh.edu>
1998-01-25  0:00 ` wanker
replies disabled

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