From: "Egil Høvik" <egilhovik@hotmail.com>
Subject: Re: Generic Zero Length Array
Date: Fri, 22 Feb 2008 05:53:19 -0800 (PST)
Date: 2008-02-22T05:53:19-08:00 [thread overview]
Message-ID: <2446841a-8bb0-46bc-94ed-099e4e0ca74c@k2g2000hse.googlegroups.com> (raw)
In-Reply-To: 9b771018-fb0b-42eb-ae00-12ee3eda69b2@p43g2000hsc.googlegroups.com
On Feb 22, 2:31 pm, shaunpatter...@gmail.com wrote:
> I have a bit of legacy code in my system that I am trying to remove
> all warnings from.
>
> The package is a generic -- with:
>
> type Element is (<>);
> type Element_List is array (Indexing range <>) of Element;
>
> I have been stumped by one compiler warning where one of the functions
> needs to return a zero-length empty generic array:
>
> warning: variable Result_String is read but never assigned
>
> code:
>
> if Error_Condition then
> declare
> type Result is new Element_List (Indexing.First + 1 ..
> Indexing'First);
> Result_String : Result;
> begin
> return Element_List (Result);
> end;
> end if;
>
> How do I initialize this array when I can't know what type it is or
> will be?
>
> Thanks
>
> --
> Shaun
A new generic parameter Null_Element would do the trick, but
that means changing code wherever the generic is used...
type Element is (<>);
type Element_List is array (Indexing range <>) of Element;
Null_Element : Element;
then you could rewrite the above code to
if Error_Condition then
return Element_List'(Indexing'First..Indexing'First-1 =>
Null_Element);
end if;
--
~egilhh
next prev parent reply other threads:[~2008-02-22 13:53 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-22 13:31 Generic Zero Length Array shaunpatterson
2008-02-22 13:53 ` Egil Høvik [this message]
2008-02-22 13:55 ` shaunpatterson
2008-02-22 14:11 ` Georg Bauhaus
2008-02-22 19:25 ` Randy Brukardt
2008-02-22 19:25 ` Randy Brukardt
2008-02-22 19:25 ` Randy Brukardt
2008-02-22 23:01 ` Adam Beneschan
2008-02-23 9:30 ` Dmitry A. Kazakov
2008-02-23 14:27 ` Robert A Duff
2008-02-23 16:16 ` Dmitry A. Kazakov
2008-02-25 16:41 ` Adam Beneschan
2008-02-25 19:14 ` Robert A Duff
2008-02-22 14:23 ` Stefan Lucks
2008-02-22 16:52 ` Adam Beneschan
2008-02-22 14:26 ` Robert A Duff
2008-02-22 15:22 ` Stefan Bellon
2008-02-22 23:03 ` Adam Beneschan
2008-02-23 10:19 ` Stefan Bellon
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox