aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Baird <baird@adacore.com>2023-11-14 14:34:47 -0800
committerMarc Poulhiès <poulhies@adacore.com>2023-11-30 11:12:49 +0100
commit262229e1e61c5130c7d5f1b4fa4e77ff60c9bc86 (patch)
treee78bbc74048e70d16af305c84a60ff1f0af0bf7b
parent1029b95079a073bba17d5e39029287e1e9600021 (diff)
downloadgcc-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.adb2
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;