[Ada] Fix check on placement of multiple loop (in)variant pragmas
authorYannick Moy <moy@adacore.com>
Thu, 31 May 2018 10:45:05 +0000 (10:45 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Thu, 31 May 2018 10:45:05 +0000 (10:45 +0000)
commit01f481c77e01414e75fc26adead0d143b27df85d
treee8cce3d179e4244902ae613eeb22c8d91da52a06
parent4cfb305e9c5c3fb8f7e9afd184802265f8a0e665
[Ada] Fix check on placement of multiple loop (in)variant pragmas

Loop (in)variants should appear next to each other, which is checked by GNAT
frontend. As statements inserted during expansion may break this contiguity,
GNAT recognizes specially such statements which originate in loop pragmas. In
some cases, this special treatment was not properly put in place, which lead to
spurious errors being issued.

2018-05-31  Yannick Moy  <moy@adacore.com>

gcc/ada/

* sem_prag.adb (Analyze_Pragma.Check_Loop_Pragma_Placement): Inverse
order of treatment between nodes recognized as loop pragmas (or
generated from one) and block statements.

From-SVN: r260996
gcc/ada/ChangeLog
gcc/ada/sem_prag.adb