         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
		.Ltext0:
				.align	1
				.global	main
				.thumb
				.thumb_func
		main:
		.LFB185:
				@ Volatile: function does not return.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL0:
				push	{r3, lr}
    2   ! This shows that the icode does not distinguish the two declarations,
				bl	_imp_initialise(PLT)
		.LVL1:
		.LBB4:
		.LBB5:
				movs	r0, #0
				bl	exit(PLT)
		.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
