]> git.ipfire.org Git - thirdparty/gcc.git/commit
[Ada] Fix check on placement of multiple loop (in)variant pragmas
authorpmderodat <pmderodat@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 31 May 2018 10:45:05 +0000 (10:45 +0000)
committerpmderodat <pmderodat@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 31 May 2018 10:45:05 +0000 (10:45 +0000)
commita2e1555453c4a55c8b043ff5b337ce978e81fe3e
treee8cce3d179e4244902ae613eeb22c8d91da52a06
parent5659aa1f787de87b888455fdb268958c842ce725
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260996 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ada/ChangeLog
gcc/ada/sem_prag.adb