[Ada] Add new unbounded and indefinite formal doubly linked list

Before this patch, the only formal doubly linked lists were bounded and
definite. This means that it is necessary to provide their maximum
length or capacity at instantiation and that they can only be used with
definite element types.

The formal lists added by this patch are unbounded and indefinite.
Their length grows dynamically until Count_Type'Last. This makes them
easier to use but requires the use of dynamic allocation and controlled
types.

gcc/ada/

	* libgnat/a-cfidll.adb, libgnat/a-cfidll.ads: Implementation
	files of the formal unbounded indefinite list.
	* Makefile.rtl, impunit.adb: Take into account the add of the
	new files.
This commit is contained in:
Julien Bortolussi 2022-05-19 15:49:03 +02:00 committed by Pierre-Marie de Rodat
parent 474946c61a
commit 829b5a6075
4 changed files with 3726 additions and 0 deletions

View File

@ -113,6 +113,7 @@ GNATRTL_NONTASKING_OBJS= \
a-cfdlli$(objext) \
a-cfhama$(objext) \
a-cfhase$(objext) \
a-cfidll$(objext) \
a-cfinve$(objext) \
a-cfinse$(objext) \
a-cforma$(objext) \

View File

@ -605,6 +605,7 @@ package body Impunit is
-- GNAT Defined Additions to Ada 2012 --
----------------------------------------
("a-cfidll", F), -- Ada.Containers.Formal_Indefinite_Doubly_Linked_Lists
("a-cfinse", F), -- Ada.Containers.Functional_Infinite_Sequences
("a-cfinve", F), -- Ada.Containers.Formal_Indefinite_Vectors
("a-coboho", F), -- Ada.Containers.Bounded_Holders

2054
gcc/ada/libgnat/a-cfidll.adb Normal file

File diff suppressed because it is too large Load Diff

1670
gcc/ada/libgnat/a-cfidll.ads Normal file

File diff suppressed because it is too large Load Diff