aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gen_il-fields.ads
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2023-01-18 20:52:03 +0100
committerMarc Poulhiès <poulhies@adacore.com>2023-05-16 10:30:56 +0200
commit4b8f39b21e27919c6de00e65b0ba29222c057d26 (patch)
treec7f53c775f22c4b84318d66dc487d2ca560cd04e /gcc/ada/gen_il-fields.ads
parentb92d0c4564a2d9b942bedad3dd1fb2887239020e (diff)
downloadgcc-4b8f39b21e27919c6de00e65b0ba29222c057d26.zip
gcc-4b8f39b21e27919c6de00e65b0ba29222c057d26.tar.gz
gcc-4b8f39b21e27919c6de00e65b0ba29222c057d26.tar.bz2
ada: Introduce Cannot_Be_Superflat flag on N_Range nodes
The support of superflat arrays in the language generates an overhead that the code generator attempts to minimize, but it cannot handle too complex cases and it would be helpful if the front-end could lend a hand. This change introduces the Cannot_Be_Superflat flag on N_Range nodes for this purpose, and sets it on the result of string concatenations when it is guaranteed to be nonnull. gcc/ada/ * gen_il-fields.ads (Opt_Field_Enum): Add Cannot_Be_Superflat. * gen_il-gen-gen_nodes.adb (N_Range): Add Cannot_Be_Superflat as semantical flag and change Includes_Infinities to semantical. * sinfo.ads (Cannot_Be_Superflat): Document it for N_Range. * exp_ch4.adb (Expand_Concatenate): Set Cannot_Be_Superflat on the range of the result if the result cannot be null.
Diffstat (limited to 'gcc/ada/gen_il-fields.ads')
-rw-r--r--gcc/ada/gen_il-fields.ads1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/ada/gen_il-fields.ads b/gcc/ada/gen_il-fields.ads
index 458219c..582837c 100644
--- a/gcc/ada/gen_il-fields.ads
+++ b/gcc/ada/gen_il-fields.ads
@@ -87,6 +87,7 @@ package Gen_IL.Fields is
Body_Required,
Body_To_Inline,
Box_Present,
+ Cannot_Be_Superflat,
Char_Literal_Value,
Chars,
Check_Address_Alignment,