         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
		.Ltext0:
				.globl	main
		main:
		.LFB189:
				leal	4(%esp), %ecx
				andl	$-16, %esp
				pushl	-4(%ecx)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				pushl	%ecx
				subl	$32, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, %eax
				movl	4(%eax), %edx
				movl	%edx, -28(%ebp)
				movl	%gs:20, %ecx
				movl	%ecx, -12(%ebp)
				xorl	%ecx, %ecx
				leal	8(%ebp), %edx
				movl	%edx, -20(%ebp)
				subl	$8, %esp
				pushl	-28(%ebp)
				pushl	(%eax)
				call	_imp_initialise@PLT
				addl	$16, %esp
				movl	$0, -16(%ebp)
		.LBB4:
		.LBB5:
				subl	$12, %esp
				pushl	-16(%ebp)
				call	exit@PLT
		.LBE5:
		.LBE4:
		.LFE189:
				.section	.text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat
				.globl	__x86.get_pc_thunk.bx
				.hidden	__x86.get_pc_thunk.bx
		__x86.get_pc_thunk.bx:
		.LFB191:
				movl	(%esp), %ebx
				ret
		.LFE191:
		.Letext0:
    2
    3 ! trying to duplicate crash from pass3.i
    4
    5 %constinteger max ref = 100
    6
    7 %recordformat  reffm(%shortinteger  tag, link, flags, ca)
    8 %recordformat  deffm(%record(deffm)%name  link, %shortinteger proc,ca)
    9 %recordformat  procfm(%record(procfm)%name  link,
   10                       %record(reffm)%name   ref list,
   11                       %record(deffm)%name   def list,
   12                       %shortinteger  base,  ca,
   13                                      static frame, event mask,
   14                                      display reg, event start,
   15                                      event finish, ld base,
   16                                      ld size, vd base,
   17                                      vd size, Me)
   18
   19 %routine phase1
   20 %record(reffm)%array  ref(1:max ref)
   21 %record(procfm)%name  pp, qq
   22   ref(1)_tag = 42
   23 %end
?QQ unused
?PP unused
   24
   25 %endofprogram
?PHASE1 unused
   11 Statements compiled
