[Ada] Enable Ada 2020 Put_Image and Image support for tagged types

Pierre-Marie de Rodat derodat@adacore.com
Tue Jul 6 14:48:56 GMT 2021


Enable support for Ada 2020's Put_Image and Image attributes for
tagged types.

Tested on x86_64-pc-linux-gnu, committed on trunk

gcc/ada/

	* exp_put_image.adb: Eliminate references to
	Debug_Flag_Underscore_Z.  Change the meaning of the function
	Enable_Put_Image. Previously, a result of False for a tagged
	type would mean that the type does not get a Put_Image (PI)
	routine at all. Now, it means that the type gets a PI routine
	with very abbreviated functionality (just a call to
	Unknown_Put_Image). This resolves problems in mixing code
	compiled with and without the -gnat2022 switch.
	* exp_ch3.adb: Enable_Put_Image no longer participates in
	determining whether a tagged type gets a Put_Image procedure.  A
	tagged type does not get a Put_Image procedure if the type
	Root_Buffer_Type is unavailable. This is needed to support cross
	targets where tagged types are supported but the type
	Root_Buffer_Type is not available.
	* exp_dist.adb: Add workarounds for some problems that arise
	when using the (obsolete?) Garlic implementation of the
	distributed systems annex with Ada 2022 constructs.
	* libgnat/a-sttebu.ads: Workaround a bootstrapping problem.
	Older compilers do not support raise expressions, so revise the
	the Pre'Class condition to meet this requirement without
	changing the condition's behavior at run time.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.diff
Type: text/x-diff
Size: 9350 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/gcc-patches/attachments/20210706/e2eac3c0/attachment-0001.bin>


More information about the Gcc-patches mailing list