         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
				.option nopic
		.Ltext0:
				.align	1
				.globl	main
		main:
		.LFB185:
		.LVL0:
				add	sp,sp,-16
				sd	ra,8(sp)
    2   ! This shows that the icode does not distinguish the two declarations,
				call	_imp_initialise
		.LVL1:
		.LBB4:
		.LBB5:
				li	a0,0
				call	exit
		.LVL2:
		.LBE5:
		.LBE4:
		.LFE185:
		.Letext0:
    3   ! and the initialisation relies on finding the declaration on the stack.
    4   ! I suspect we can get by with having a single flex array for the
    5   ! current declarations initial values.
    6   !
    7   ! When we pop the stack at codegen time, we'll either hit an INIT
    8   ! first (at which point we save them up, in reverse order) or
    9   ! we hit the $DEF and there's no initialisation needed.
   10
   11   %ownintegerarray one(0:3)
   12
   13   %ownintegerarray two(0:3) = 1, 2, 3, 4
   14
   15   one(2) = two(1)
   16
   17 %endofprogram
    5 Statements compiled
