aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-manip.c
diff options
context:
space:
mode:
authorEd Schonberg <schonberg@adacore.com>2019-07-05 07:03:54 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2019-07-05 07:03:54 +0000
commit76e716d76171e50353e7eb80632ea75165eabdc0 (patch)
tree251a07dbc848e282ba8c7305e01dde1da72033a5 /gcc/tree-ssa-loop-manip.c
parent3eb5e54a4a50f3e7c39a1f5435f9d4eedb26bb37 (diff)
downloadgcc-76e716d76171e50353e7eb80632ea75165eabdc0.zip
gcc-76e716d76171e50353e7eb80632ea75165eabdc0.tar.gz
gcc-76e716d76171e50353e7eb80632ea75165eabdc0.tar.bz2
[Ada] Compiler loop on illegal nested accept statement
This patch fixes a "Compilation abandoned" message in a compiler built with assertions, or a compiler loop otherwise, when an accept statement contains an illegal accept statement for the same entry. Compiling accept_in_accept.adb must yield: accept_in_accept.adb:12:13: duplicate accept statement for same entry (RM 9.5.2 (15)) ---- procedure accept_in_accept is task a_in_a is entry a (i : Integer); end a_in_a; task body a_in_a is begin select accept a (i : Integer) do null; accept a (i : integer) do null; end a; end a; or terminate; end select; end a_in_a; begin a_in_a.a (1); end accept_in_accept; 2019-07-05 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_ch9.adb (Analyze_Accept_Statement): If this is an illegal accept statement for an enclosing entry abandon analysis to prevent scope mismatches and potential infinite loops in compiler. From-SVN: r273129
Diffstat (limited to 'gcc/tree-ssa-loop-manip.c')
0 files changed, 0 insertions, 0 deletions