         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
				.section	".text"
		.Ltext0:
				.align 4
				.global main
				.proc	04
		main:
		.LFB185:
		.LVL0:
				save	%sp, -176, %sp
		.LVL1:
    2   ! This shows that the icode does not distinguish the two declarations,
				mov	%i1, %o1
				call	_imp_initialise, 0
				 mov	%i0, %o0
		.LVL2:
		.LBB4:
		.LBB5:
				call	exit, 0
				 mov	0, %o0
		.LVL3:
		.LBE5:
		.LBE4:
				nop
		.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
