ada: Fix iteration over component items with pragmas
commit16c320507774ca38e0eb3d1c4116c9dcb3f2e598
authorPiotr Trojanek <trojanek@adacore.com>
Tue, 21 Mar 2023 08:46:57 +0000 (21 09:46 +0100)
committerMarc Poulhiès <poulhies@adacore.com>
Fri, 26 May 2023 07:29:16 +0000 (26 09:29 +0200)
tree1232c65e52fbc5f9bbfb24d62caed66d7d2cc22c
parentbdda3d2960f884488cf9fcc817a541e709ddb7e7
ada: Fix iteration over component items with pragmas

Component items in a record declaration might include pragmas, which
must be ignored when detecting components with default expressions.

More a code cleanup than a bugfix, as it only affects artificial corner
cases. Found while fixing missing legality checks for variant component
declarations.

gcc/ada/

* sem_ch3.adb (Check_CPP_Type_Has_No_Defaults): Iterate with
First_Non_Pragma and Next_Non_Pragma.
* exp_dist.adb (Append_Record_Traversal): Likewise.
gcc/ada/exp_dist.adb
gcc/ada/sem_ch3.adb