aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPiotr Trojanek <trojanek@adacore.com>2021-08-26 17:35:27 +0200
committerPierre-Marie de Rodat <derodat@adacore.com>2021-10-04 08:45:06 +0000
commit44bfdde1e96167f07b86b0dcd773931353a98ea7 (patch)
tree5e04f97813c84e4889ef1285c2372860fd1aaa72 /gcc
parent263e2936305cb3b995db8f86ce8c60579caeeda3 (diff)
downloadgcc-44bfdde1e96167f07b86b0dcd773931353a98ea7.zip
gcc-44bfdde1e96167f07b86b0dcd773931353a98ea7.tar.gz
gcc-44bfdde1e96167f07b86b0dcd773931353a98ea7.tar.bz2
[Ada] Fix missing check on slice with a subtype indication
gcc/ada/ * sem_res.adb (Resolve_Slice): Handle range given as a subtype indication.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/sem_res.adb6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb
index c493d5d..ba733a5 100644
--- a/gcc/ada/sem_res.adb
+++ b/gcc/ada/sem_res.adb
@@ -11360,7 +11360,11 @@ package body Sem_Res is
Set_Parent (Dexpr, Parent (Drange));
Set_Sloc (Dexpr, Sloc (Drange));
- -- The discrete_range is a regular range. Resolve the bounds and remove
+ elsif Nkind (Drange) = N_Subtype_Indication then
+ Dexpr := Range_Expression (Constraint (Drange));
+
+ -- The discrete_range is a regular range (or a range attribute, which
+ -- will be resolved into a regular range). Resolve the bounds and remove
-- their side effects.
else