diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2020-03-13 21:07:56 +0100 |
---|---|---|
committer | Giuliano Belinassi <giuliano.belinassi@usp.br> | 2020-08-17 13:12:06 -0300 |
commit | 047a918d5fbd636aaae21da466da04f1d7df236a (patch) | |
tree | 4d5394b2bed5d0e46cbf1b3810866913583038ae /gcc | |
parent | 32dfb125ddfb3defa60836e6af1211dfd4df8924 (diff) | |
download | gcc-047a918d5fbd636aaae21da466da04f1d7df236a.zip gcc-047a918d5fbd636aaae21da466da04f1d7df236a.tar.gz gcc-047a918d5fbd636aaae21da466da04f1d7df236a.tar.bz2 |
[Ada] Skip unnecessary iterations over constraint expressions
2020-06-11 Piotr Trojanek <trojanek@adacore.com>
gcc/ada/
* sem_ch3.adb (Build_Constrained_Array_Type,
Build_Constrained_Discriminated_Type): Skip unnecessary loop
iterations.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/sem_ch3.adb | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb index 026bcef..ccb0ea9 100644 --- a/gcc/ada/sem_ch3.adb +++ b/gcc/ada/sem_ch3.adb @@ -13093,7 +13093,7 @@ package body Sem_Ch3 is Scop : Entity_Id; begin - -- if the original access type was not embedded in the enclosing + -- If the original access type was not embedded in the enclosing -- type definition, there is no need to produce a new access -- subtype. In fact every access type with an explicit constraint -- generates an itype whose scope is the enclosing record. @@ -13192,6 +13192,7 @@ package body Sem_Ch3 is Is_Discriminant (Hi_Expr) then Need_To_Create_Itype := True; + exit; end if; Next_Index (Old_Index); @@ -13248,6 +13249,7 @@ package body Sem_Ch3 is if Is_Discriminant (Expr) then Need_To_Create_Itype := True; + exit; -- After expansion of discriminated task types, the value -- of the discriminant may be converted to a run-time type @@ -13259,6 +13261,7 @@ package body Sem_Ch3 is and then Is_Discriminant (Expression (Expr)) then Need_To_Create_Itype := True; + exit; end if; Next_Elmt (Old_Constraint); |