         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	$16, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, %eax
				subl	$8, %esp
				pushl	4(%eax)
				pushl	(%eax)
				call	_imp_initialise@PLT
				addl	$16, %esp
    2   %integer cond
    3   cond = 1
				movl	$1, -16(%ebp)
    4   !
    5   %if cond # 0 %start
				cmpl	$0, -16(%ebp)
				je	.L19
				nop
		.L3:
    6     %if cond # 1 %start { generated dangling else error until fixed with extra bracketing }
				cmpl	$1, -16(%ebp)
				je	.L20
				nop
		.L5:
				jmp	.L6
		.L19:
    7       cond = 4
				movl	$4, -16(%ebp)
    8     %finish
    9   %finishelsestart
				jmp	.L6
		.L20:
   10     cond = 3
				movl	$3, -16(%ebp)
		.L6:
   11   %finish
   12
   13   ! Same logic but tortured expression of it...
   14   ! this one *would* have still generated dangling else error
   15   ! *IF* the then/else reversal were working as it should! (which it isn't)
   16
   17   %if cond # 0 %start
				cmpl	$0, -16(%ebp)
				je	.L21
				nop
		.L8:
   18     %if cond = 1 %start
				cmpl	$1, -16(%ebp)
				je	.L22
				nop
		.L10:
   19     %finishelse cond = 4
				movl	$4, -16(%ebp)
				nop
		.L11:
				jmp	.L12
		.L21:
   20   %finishelsestart
				jmp	.L12
		.L22:
   21     cond = 3
				movl	$3, -16(%ebp)
		.L12:
   22   %finish
   23
   24   ! Let's test the simple reversal on its own...
   25   %if cond = 1 %start
				cmpl	$1, -16(%ebp)
				je	.L23
				nop
		.L14:
   26   %finishelse cond = 4
				movl	$4, -16(%ebp)
				jmp	.L15
		.L23:
				nop
		.L15:
				movl	$0, -12(%ebp)
		.LBB4:
		.LBB5:
				subl	$12, %esp
				pushl	-12(%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:
		.LFB190:
				movl	(%esp), %ebx
				ret
		.LFE190:
		.Letext0:
   27
   28 %endofprogram
   19 Statements compiled
