gnu/gcc/3781bb37cf83b8a6849c626236e5023b9eb9fe12 a68: avoid coalescing of stmt_lists in a68_lower_unit_list
At it happens, a68_lower_unit_list collects units as members of a
stmt_list, lowering them and appending them. Problem is, stmt_lists
get coalesced when appended (or prepended) to another stmt_list.
One of the units that may lower in a stmt_list are generators, and the
coalescing manifests itself when the generators are found in
collateral clauses.
This patch puts in place a temporary workaround for this, which is to
wrap the stmt_list into a NOP_EXPR. This avoid the coalescing, but a
less hackish solution will probably consist on changing the way
unit_lists get collected instead.
Signed-off-by: Jose E. Marchesi <jemarch@gnu.org>
gcc/algol68/ChangeLog
* a68-low-generator.cc (a68_low_generator): Wrap the resulting
stmt_list into a nop_expr.
gcc/testsuite/ChangeLog
* algol68/execute/gen-in-constructor-1.a68: New test.
* algol68/execute/gen-in-constructor-2.a68: Likewise.
3 files changed