diff options
author | Steve Baird <baird@adacore.com> | 2023-11-14 14:34:47 -0800 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2023-11-30 11:12:49 +0100 |
commit | 262229e1e61c5130c7d5f1b4fa4e77ff60c9bc86 (patch) | |
tree | e78bbc74048e70d16af305c84a60ff1f0af0bf7b | |
parent | 1029b95079a073bba17d5e39029287e1e9600021 (diff) | |
download | gcc-262229e1e61c5130c7d5f1b4fa4e77ff60c9bc86.zip gcc-262229e1e61c5130c7d5f1b4fa4e77ff60c9bc86.tar.gz gcc-262229e1e61c5130c7d5f1b4fa4e77ff60c9bc86.tar.bz2 |
ada: Support Put_Image for types in user-defined instances of predefined generics.
Predefined units do not generally support the Put_Image attribute.
There are good reasons for this in most cases. But if a user-defined
instantiation of a predefined generic occurs in Ada 2022 code, then
Put_Image can be supported for types declared therein. Add this support.
gcc/ada/
* exp_put_image.adb (Put_Image_Enabled): Return True in more
cases. In particular, when testing to see if a type occurs in a
predefined unit, test the type's code unit
(obtained by calling Get_Code_Unit). In the case of type within a
user-defined instance of a predefined generic, Is_Predefined_Unit
will return True for the type and False for the type's code unit.
-rw-r--r-- | gcc/ada/exp_put_image.adb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/ada/exp_put_image.adb b/gcc/ada/exp_put_image.adb index 6684d41..a30f609 100644 --- a/gcc/ada/exp_put_image.adb +++ b/gcc/ada/exp_put_image.adb @@ -1023,7 +1023,7 @@ package body Exp_Put_Image is null; elsif Is_Derived_Type (Typ) then return Put_Image_Enabled (Etype (Base_Type (Typ))); - elsif In_Predefined_Unit (Typ) then + elsif Is_Predefined_Unit (Get_Code_Unit (Typ)) then return False; end if; end if; |