diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2020-04-16 13:59:53 +0200 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2020-06-18 05:08:22 -0400 |
commit | a9fb2055f3a7a05e493bbb614aca5ed3a19b80d2 (patch) | |
tree | 641287ae9c3aeb36807ed923b6b158f3e6344364 /gcc/ada | |
parent | c94bbfbe57de7eccec1f3b2fe0da594014ac6088 (diff) | |
download | gcc-a9fb2055f3a7a05e493bbb614aca5ed3a19b80d2.zip gcc-a9fb2055f3a7a05e493bbb614aca5ed3a19b80d2.tar.gz gcc-a9fb2055f3a7a05e493bbb614aca5ed3a19b80d2.tar.bz2 |
[Ada] Fix failed assertion on a slice indexed by a subtype_indication
2020-06-18 Piotr Trojanek <trojanek@adacore.com>
gcc/ada/
* checks.adb (Generate_Index_Checks): Handle
N_Subtype_Indication returned from Scalar_Range.
Diffstat (limited to 'gcc/ada')
-rw-r--r-- | gcc/ada/checks.adb | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/ada/checks.adb b/gcc/ada/checks.adb index 51b73f9..7b8ca97 100644 --- a/gcc/ada/checks.adb +++ b/gcc/ada/checks.adb @@ -6842,6 +6842,10 @@ package body Checks is elsif Nkind_In (A_Idx, N_Identifier, N_Expanded_Name) then A_Range := Scalar_Range (Entity (A_Idx)); + if Nkind (A_Range) = N_Subtype_Indication then + A_Range := Range_Expression (Constraint (A_Range)); + end if; + else pragma Assert (Nkind (A_Idx) = N_Subtype_Indication); A_Range := Range_Expression (Constraint (A_Idx)); end if; |