shithub: scc

Download patch

ref: f9886fa0db4202c8b65b64356e757cfdda49a535
parent: 2e34f3bcec4662296110dabc00946b06fa8dbd36
author: Roberto E. Vargas Caballero <k0ga@shike2.com>
date: Tue Dec 13 12:53:04 EST 2016

[cc1] Update tests after commits 7aa488d 62ecef1

--- a/cc1/tests/test001.c
+++ b/cc1/tests/test001.c
@@ -5,17 +5,19 @@
 description: Basic hello world test
 error:
 output:
-X4	I	F	"printf
-G6	I	F	"main
+V2	K	#NC
+V4	K	#N9
+X8	I	F	"printf
+G10	I	F	"main
 {
 \
-V9	K	#ND
-Y8	V9	"	(
+V13	K	#ND
+Y12	V13	"	(
 	#"hello world
 	#K0A
 	#K00
 )
-	X4	Y8	'P	pP	cI
+	X8	Y12	'P	pP	cI
 	h	#I0
 }
 */
--- a/cc1/tests/test002.c
+++ b/cc1/tests/test002.c
@@ -5,27 +5,29 @@
 description: Test forward references before definition of types
 error:
 output:
-G4	P	"x
-G8	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G8	P	"x
+S6	"S	#N8	#N2
+M9	I	"i	#N0
+M10	P	"next	#N2
+G12	I	F	"main
 {
 \
-S2	"S	#N8	#N2
-M5	I	"i	#N0
-M6	P	"next	#N2
-A9	S2	"y
-A10	P	"p
-A11	N	"n
-	A9	M5	.I	#I0	:I
-	G4	@S2	A9	:S2
-	A11	#N0	:N	A10	A9	'P	:P	,P
-	j	L14
+A13	S6	"y
+A14	P	"p
+A15	N	"n
+	A13	M9	.I	#I0	:I
+	G8	@S6	A13	:S6
+	A15	#N0	:N	A14	A13	'P	:P	,P
+	j	L18
 	e
-L12
-	A11	#N1	:+N	A10	A10	@S2	M6	.P	:P	,P
-L14
-	y	L12	A10	#P0	!I
+L16
+	A15	#N1	:+N	A14	A14	@S6	M10	.P	:P	,P
+L18
+	y	L16	A14	#P0	!I
 	b
-L13
+L17
 }
 */
 
--- a/cc1/tests/test003.c
+++ b/cc1/tests/test003.c
@@ -5,20 +5,22 @@
 description: Select function to call inside ternary operator
 error:
 output:
-G2	I	F	"foo
+V2	K	#NC
+V4	K	#N9
+G6	I	F	"foo
 {
 \
 	h	#I2A
 }
-G4	I	F	"bar
+G7	I	F	"bar
 {
 \
 	h	#I18
 }
-G5	I	F	"main
+G8	I	F	"main
 {
 \
-	h	G2	cI
+	h	G6	cI
 }
 */
 
--- a/cc1/tests/test004.c
+++ b/cc1/tests/test004.c
@@ -5,28 +5,30 @@
 description: Test integer operations
 error:
 output:
-G2	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G6	I	F	"main
 {
 \
-A3	I	"x
-	A3	#I0	:I
-	A3	A3	#I2	+I	:I
-	A3	A3	#I1	-I	:I
-	A3	A3	#I6	*I	:I
-	A3	A3	#I2	/I	:I
-	A3	A3	#I2	%I	:I
-	A3	A3	#I2	lI	:I
-	A3	A3	#I1	rI	:I
-	A3	A3	#IFF	|I	:I
-	A3	A3	#I3	&I	:I
-	A3	A3	#I1	^I	:I
-	A3	A3	A3	#I1	>I	+I	:I
-	A3	A3	A3	#I3	<I	+I	:I
-	A3	A3	A3	#I1	>I	+I	:I
-	A3	A3	A3	#I4	<I	+I	:I
-	y	L4	A3	#I4	=I
+A7	I	"x
+	A7	#I0	:I
+	A7	A7	#I2	+I	:I
+	A7	A7	#I1	-I	:I
+	A7	A7	#I6	*I	:I
+	A7	A7	#I2	/I	:I
+	A7	A7	#I2	%I	:I
+	A7	A7	#I2	lI	:I
+	A7	A7	#I1	rI	:I
+	A7	A7	#IFF	|I	:I
+	A7	A7	#I3	&I	:I
+	A7	A7	#I1	^I	:I
+	A7	A7	A7	#I1	>I	+I	:I
+	A7	A7	A7	#I3	<I	+I	:I
+	A7	A7	A7	#I1	>I	+I	:I
+	A7	A7	A7	#I4	<I	+I	:I
+	y	L8	A7	#I4	=I
 	h	#I1
-L4
+L8
 	h	#I0
 }
 */
--- a/cc1/tests/test005.c
+++ b/cc1/tests/test005.c
@@ -5,18 +5,20 @@
 description: Test unary integer operations
 error:
 output:
-G2	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G6	I	F	"main
 {
 \
-A3	I	"x
-	A3	#I3	:I
-	A3	A3	#I0	=I	:I
-	A3	A3	#I0	=I	:I
-	A3	A3	~I	:I
-	A3	A3	_I	:I
-	y	L4	A3	#I2	=I
+A7	I	"x
+	A7	#I3	:I
+	A7	A7	#I0	=I	:I
+	A7	A7	#I0	=I	:I
+	A7	A7	~I	:I
+	A7	A7	_I	:I
+	y	L8	A7	#I2	=I
 	h	#I1
-L4
+L8
 	h	#I0
 }
 */
--- a/cc1/tests/test006.c
+++ b/cc1/tests/test006.c
@@ -8,30 +8,32 @@
 test006.c:7: warning: conditional expression is constant
 test006.c:10: warning: conditional expression is constant
 output:
-G1	K	"c
-G3	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G5	K	"c
+G7	I	F	"main
 {
 \
-	y	L4	#I1
+	y	L8	#I1
 	h	#I1
-	j	L5
-L4
-	y	L6	#I1
-	j	L7
-L6
-	y	L8	#I0
-	y	L9	G1	gI	#I0	=I
+	j	L9
+L8
+	y	L10	#I1
+	j	L11
+L10
+	y	L12	#I0
+	y	L13	G5	gI	#I0	=I
 	h	#I1
-	j	L10
-L9
+	j	L14
+L13
 	h	#I0
-L10
-	j	L11
-L8
+L14
+	j	L15
+L12
 	h	#I1
+L15
 L11
-L7
-L5
+L9
 	h	#I1
 }
 */
--- a/cc1/tests/test007.c
+++ b/cc1/tests/test007.c
@@ -5,20 +5,22 @@
 description: basic while test
 error:
 output:
-G2	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G6	I	F	"main
 {
 \
-A3	I	"x
-	A3	#IA	:I
-	j	L6
+A7	I	"x
+	A7	#IA	:I
+	j	L10
 	e
-L4
-	A3	A3	#I1	-I	:I
-L6
-	y	L4	A3	#I0	!I
+L8
+	A7	A7	#I1	-I	:I
+L10
+	y	L8	A7	#I0	!I
 	b
-L5
-	h	A3
+L9
+	h	A7
 }
 */
 
--- a/cc1/tests/test008.c
+++ b/cc1/tests/test008.c
@@ -5,24 +5,26 @@
 description: Basic do while loop
 error:
 output:
-G2	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G6	I	F	"main
 {
 \
-A3	I	"x
-	A3	#I0	:I
+A7	I	"x
+	A7	#I0	:I
 	e
-L4
-	A3	A3	#I1	+I	:I
-	y	L4	A3	#IA	<I
+L8
+	A7	A7	#I1	+I	:I
+	y	L8	A7	#IA	<I
 	b
-L5
+L9
 	e
-L6
-	A3	A3	#I1	+I	:I
-	y	L6	A3	#I14	<I
+L10
+	A7	A7	#I1	+I	:I
+	y	L10	A7	#I14	<I
 	b
-L7
-	h	A3	#I14	-I
+L11
+	h	A7	#I14	-I
 }
 */
 
--- a/cc1/tests/test009.c
+++ b/cc1/tests/test009.c
@@ -5,22 +5,24 @@
 description: Basic test for loops
 error:
 output:
-G2	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G6	I	F	"main
 {
 \
-A3	I	"x
-	A3	#I0	:I
-	j	L6
+A7	I	"x
+	A7	#I0	:I
+	j	L10
 	e
-L4
-	A3	A3	#I1	+I	:I
-L6
-	y	L4	A3	#IA	<I
+L8
+	A7	A7	#I1	+I	:I
+L10
+	y	L8	A7	#IA	<I
 	b
-L5
-	y	L7	A3	#IA	=I
+L9
+	y	L11	A7	#IA	=I
 	h	#I1
-L7
+L11
 	h	#I0
 }
 */
--- a/cc1/tests/test010.c
+++ b/cc1/tests/test010.c
@@ -8,57 +8,59 @@
 test010.c:10: warning: conditional expression is constant
 test010.c:30: warning: conditional expression is constant
 output:
-G2	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G6	I	F	"main
 {
 \
-A3	I	"x
-	A3	#I0	:I
-	j	L6
+A7	I	"x
+	A7	#I0	:I
+	j	L10
 	e
-L4
-	j	L5
-L6
-	y	L4	#I1
-	b
-L5
+L8
 	j	L9
-	e
-L7
-	y	L10	A3	#I5	!I
-	j	L8
 L10
-	A3	A3	#I1	+I	:I
-	j	L7
-L9
-	y	L7	#I1
+	y	L8	#I1
 	b
-L8
-
+L9
 	j	L13
 	e
 L11
-	y	L14	A3	#IA	!I
+	y	L14	A7	#I5	!I
 	j	L12
 L14
-	A3	A3	#I1	+I	:I
+	A7	A7	#I1	+I	:I
 	j	L11
-
 L13
-	j	L11
-
+	y	L11	#I1
 	b
 L12
+
+	j	L17
 	e
 L15
-	y	L17	A3	#IF	!I
+	y	L18	A7	#IA	!I
 	j	L16
+L18
+	A7	A7	#I1	+I	:I
+	j	L15
+
 L17
-	A3	A3	#I1	+I	:I
 	j	L15
-	y	L15	#I1
+
 	b
 L16
-	h	A3	#IF	-I
+	e
+L19
+	y	L21	A7	#IF	!I
+	j	L20
+L21
+	A7	A7	#I1	+I	:I
+	j	L19
+	y	L19	#I1
+	b
+L20
+	h	A7	#IF	-I
 }
 */
 
--- a/cc1/tests/test011.c
+++ b/cc1/tests/test011.c
@@ -7,17 +7,19 @@
 test011.c:13: warning: 'foo' defined but not used
 test011.c:13: warning: 'start' defined but not used
 output:
-G2	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G6	I	F	"main
 {
 \
-L3
-	j	L4
+L7
+	j	L8
 	h	#I1
-L5
+L9
 	h	#I0
-L4
-L6
-	j	L5
+L8
+L10
+	j	L9
 	h	#I1
 }
 */
--- a/cc1/tests/test012.c
+++ b/cc1/tests/test012.c
@@ -6,58 +6,60 @@
 error:
 test012.c:38: warning: 'foo' defined but not used
 output:
-G2	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G6	I	F	"main
 {
 \
-A3	I	"x
-	A3	#I0	:I
-	s	A3
-	v	L5	#I0
-L5
-	t	L4
-L4
-	s	A3
-	v	L7	#I0
-L7
-	s	A3
+A7	I	"x
+	A7	#I0	:I
+	s	A7
 	v	L9	#I0
 L9
-	j	L10
-	f	L11
-L11
-	h	#I1
 	t	L8
 L8
-	t	L6
-L6
-	h	#I2
-L10
-	s	A3
-	v	L13	#I1
+	s	A7
+	v	L11	#I0
+L11
+	s	A7
+	v	L13	#I0
 L13
-	h	#I3
+	j	L14
+	f	L15
+L15
+	h	#I1
 	t	L12
 L12
-	s	A3
-	A3	#I2	:I
-L15
-	v	L16	#I1
+	t	L10
+L10
+	h	#I2
+L14
+	s	A7
+	v	L17	#I1
+L17
+	h	#I3
+	t	L16
 L16
+	s	A7
+	A7	#I2	:I
+L19
+	v	L20	#I1
+L20
 	h	#I4
-	t	L14
-L14
-	s	A3
-	v	L18	#I0
+	t	L18
 L18
-	h	A3
-	v	L19	#I1
-L19
+	s	A7
+	v	L22	#I0
+L22
+	h	A7
+	v	L23	#I1
+L23
 	h	#I1
-	f	L20
-L20
+	f	L24
+L24
 	h	#I1
-	t	L17
-L17
+	t	L21
+L21
 }
 */
 
--- a/cc1/tests/test013.c
+++ b/cc1/tests/test013.c
@@ -8,130 +8,132 @@
           short is equal to int, and unsigned short is equal to unsigned.
 error:
 output:
-G1	I	"a
-G2	N	"b
-G3	K	"c
-G4	C	"d
-G5	K	"e
-G6	W	"f
-G7	Z	"g
-G8	Q	"h
-G9	O	"i
-G10	I	"j
-G11	N	"k
-G13	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G5	I	"a
+G6	N	"b
+G7	K	"c
+G8	C	"d
+G9	K	"e
+G10	W	"f
+G11	Z	"g
+G12	Q	"h
+G13	O	"i
+G14	I	"j
+G15	N	"k
+G17	I	F	"main
 {
 \
-	G1	G2	gI	:I
-	G1	G3	gI	:I
-	G1	G4	gI	:I
-	G1	G5	gI	:I
-	G1	G6	gI	:I
-	G1	G7	gI	:I
-	G1	G8	gI	:I
-	G1	G9	gI	:I
-	G1	G10	:I
-	G1	G11	gI	:I
-	G2	G1	gN	:N
-	G2	G3	gN	:N
-	G2	G4	gN	:N
-	G2	G5	gN	:N
-	G2	G6	gN	:N
-	G2	G7	gN	:N
-	G2	G8	gN	:N
-	G2	G9	gN	:N
-	G2	G10	gN	:N
-	G2	G11	:N
-	G3	G1	gK	:K
-	G3	G2	gK	:K
-	G3	G4	gK	:K
-	G3	G5	:K
-	G3	G6	gK	:K
-	G3	G7	gK	:K
-	G3	G8	gK	:K
-	G3	G9	gK	:K
-	G3	G10	gK	:K
-	G3	G11	gK	:K
-	G4	G1	gC	:C
-	G4	G2	gC	:C
-	G4	G3	gC	:C
-	G4	G5	gC	:C
-	G4	G6	gC	:C
-	G4	G7	gC	:C
-	G4	G8	gC	:C
-	G4	G9	gC	:C
-	G4	G10	gC	:C
-	G4	G11	gC	:C
-	G5	G1	gK	:K
-	G5	G2	gK	:K
-	G5	G3	:K
-	G5	G4	gK	:K
-	G5	G6	gK	:K
-	G5	G7	gK	:K
-	G5	G8	gK	:K
-	G5	G9	gK	:K
-	G5	G10	gK	:K
-	G5	G11	gK	:K
-	G6	G1	gW	:W
-	G6	G2	gW	:W
-	G6	G3	gW	:W
-	G6	G4	gW	:W
-	G6	G5	gW	:W
-	G6	G7	gW	:W
-	G6	G8	gW	:W
-	G6	G9	gW	:W
-	G6	G10	gW	:W
-	G6	G11	gW	:W
-	G7	G1	gZ	:Z
-	G7	G2	gZ	:Z
-	G7	G3	gZ	:Z
-	G7	G4	gZ	:Z
-	G7	G5	gZ	:Z
-	G7	G6	gZ	:Z
-	G7	G8	gZ	:Z
-	G7	G9	gZ	:Z
-	G7	G10	gZ	:Z
-	G7	G11	gZ	:Z
-	G8	G1	gQ	:Q
-	G8	G2	gQ	:Q
-	G8	G3	gQ	:Q
-	G8	G4	gQ	:Q
-	G8	G5	gQ	:Q
-	G8	G6	gQ	:Q
-	G8	G7	gQ	:Q
-	G8	G9	gQ	:Q
-	G8	G10	gQ	:Q
-	G8	G11	gQ	:Q
-	G9	G1	gO	:O
-	G9	G2	gO	:O
-	G9	G3	gO	:O
-	G9	G4	gO	:O
-	G9	G5	gO	:O
-	G9	G6	gO	:O
-	G9	G7	gO	:O
-	G9	G8	gO	:O
-	G9	G10	gO	:O
-	G9	G11	gO	:O
-	G10	G1	:I
-	G10	G2	gI	:I
-	G10	G3	gI	:I
-	G10	G4	gI	:I
-	G10	G5	gI	:I
-	G10	G6	gI	:I
-	G10	G7	gI	:I
-	G10	G8	gI	:I
-	G10	G9	gI	:I
-	G10	G11	gI	:I
-	G11	G1	gN	:N
-	G11	G2	:N
-	G11	G3	gN	:N
-	G11	G4	gN	:N
-	G11	G5	gN	:N
-	G11	G6	gN	:N
-	G11	G7	gN	:N
-	G11	G8	gN	:N
-	G11	G10	gN	:N
-	G11	G9	gN	:N
+	G5	G6	gI	:I
+	G5	G7	gI	:I
+	G5	G8	gI	:I
+	G5	G9	gI	:I
+	G5	G10	gI	:I
+	G5	G11	gI	:I
+	G5	G12	gI	:I
+	G5	G13	gI	:I
+	G5	G14	:I
+	G5	G15	gI	:I
+	G6	G5	gN	:N
+	G6	G7	gN	:N
+	G6	G8	gN	:N
+	G6	G9	gN	:N
+	G6	G10	gN	:N
+	G6	G11	gN	:N
+	G6	G12	gN	:N
+	G6	G13	gN	:N
+	G6	G14	gN	:N
+	G6	G15	:N
+	G7	G5	gK	:K
+	G7	G6	gK	:K
+	G7	G8	gK	:K
+	G7	G9	:K
+	G7	G10	gK	:K
+	G7	G11	gK	:K
+	G7	G12	gK	:K
+	G7	G13	gK	:K
+	G7	G14	gK	:K
+	G7	G15	gK	:K
+	G8	G5	gC	:C
+	G8	G6	gC	:C
+	G8	G7	gC	:C
+	G8	G9	gC	:C
+	G8	G10	gC	:C
+	G8	G11	gC	:C
+	G8	G12	gC	:C
+	G8	G13	gC	:C
+	G8	G14	gC	:C
+	G8	G15	gC	:C
+	G9	G5	gK	:K
+	G9	G6	gK	:K
+	G9	G7	:K
+	G9	G8	gK	:K
+	G9	G10	gK	:K
+	G9	G11	gK	:K
+	G9	G12	gK	:K
+	G9	G13	gK	:K
+	G9	G14	gK	:K
+	G9	G15	gK	:K
+	G10	G5	gW	:W
+	G10	G6	gW	:W
+	G10	G7	gW	:W
+	G10	G8	gW	:W
+	G10	G9	gW	:W
+	G10	G11	gW	:W
+	G10	G12	gW	:W
+	G10	G13	gW	:W
+	G10	G14	gW	:W
+	G10	G15	gW	:W
+	G11	G5	gZ	:Z
+	G11	G6	gZ	:Z
+	G11	G7	gZ	:Z
+	G11	G8	gZ	:Z
+	G11	G9	gZ	:Z
+	G11	G10	gZ	:Z
+	G11	G12	gZ	:Z
+	G11	G13	gZ	:Z
+	G11	G14	gZ	:Z
+	G11	G15	gZ	:Z
+	G12	G5	gQ	:Q
+	G12	G6	gQ	:Q
+	G12	G7	gQ	:Q
+	G12	G8	gQ	:Q
+	G12	G9	gQ	:Q
+	G12	G10	gQ	:Q
+	G12	G11	gQ	:Q
+	G12	G13	gQ	:Q
+	G12	G14	gQ	:Q
+	G12	G15	gQ	:Q
+	G13	G5	gO	:O
+	G13	G6	gO	:O
+	G13	G7	gO	:O
+	G13	G8	gO	:O
+	G13	G9	gO	:O
+	G13	G10	gO	:O
+	G13	G11	gO	:O
+	G13	G12	gO	:O
+	G13	G14	gO	:O
+	G13	G15	gO	:O
+	G14	G5	:I
+	G14	G6	gI	:I
+	G14	G7	gI	:I
+	G14	G8	gI	:I
+	G14	G9	gI	:I
+	G14	G10	gI	:I
+	G14	G11	gI	:I
+	G14	G12	gI	:I
+	G14	G13	gI	:I
+	G14	G15	gI	:I
+	G15	G5	gN	:N
+	G15	G6	:N
+	G15	G7	gN	:N
+	G15	G8	gN	:N
+	G15	G9	gN	:N
+	G15	G10	gN	:N
+	G15	G11	gN	:N
+	G15	G12	gN	:N
+	G15	G14	gN	:N
+	G15	G13	gN	:N
 }
 */
 
--- a/cc1/tests/test014.c
+++ b/cc1/tests/test014.c
@@ -20,28 +20,30 @@
 test014.c:34: warning: 'par' defined but not used
 test014.c:37: error: conflicting types for 'd'
 output:
-G1	I	"a
-Y2	K	"b
-X3	I	"c
-G6	I	F	"func1
+V2	K	#NC
+V4	K	#N9
+G5	I	"a
+Y6	K	"b
+X7	I	"c
+G10	I	F	"func1
 {
 \
-A7	I	"h
-T8	K	"i
-R9	W	"j
-X10	I	"k
-T11	Z	"a
+A11	I	"h
+T12	K	"i
+R13	W	"j
+X14	I	"k
+T15	Z	"a
 	h	#I0
 }
-G14	0	F	"func2
+G18	0	F	"func2
 {
-R12	I	"par
+R16	I	"par
 \
-A15	I	"par
+A19	I	"par
 }
-T18	0	F	"func3
+T21	0	F	"func3
 {
-R16	I	"par
+R20	I	"par
 \
 }
 */
--- a/cc1/tests/test015.c
+++ b/cc1/tests/test015.c
@@ -4,25 +4,27 @@
 name: TEST015
 description: Stress namespace mechanism
 error:
-test015.c:54: error: label 's' already defined
+test015.c:56: error: label 's' already defined
 output:
-S8	"s2	#N2	#N1
-M9	I	"s	#N0
-S5	"s1	#N4	#N1
-M6	I	"s	#N0
-M10	S8	"s1	#N2
-S2	"s	#N4	#N1
-M11	S5	"s	#N0
-G12	S2	"s2
-G14	I	F	"main
+V2	K	#NC
+V4	K	#N9
+S12	"s2	#N2	#N1
+M13	I	"s	#N0
+S9	"s1	#N4	#N1
+M10	I	"s	#N0
+M14	S12	"s1	#N2
+S6	"s	#N4	#N1
+M15	S9	"s	#N0
+G16	S6	"s2
+G18	I	F	"main
 {
 \
-	j	L15
-A16	S2	"s
-A17	I	"s
-	h	A17
-	h	A16	M11	.S5	M6	.I	A16	M11	.S5	M10	.S8	M9	.I	+I
-L15
+	j	L19
+A20	S6	"s
+A21	I	"s
+	h	A21
+	h	A20	M15	.S9	M10	.I	A20	M15	.S9	M14	.S12	M13	.I	+I
+L19
 */
 
 typedef struct s s;
--- a/cc1/tests/test016.c
+++ b/cc1/tests/test016.c
@@ -7,40 +7,42 @@
 test016.c:42: error: redefinition of 'func2'
 test016.c:46: error: incompatible types when assigning
 output:
-G1	I	"g
-G3	I	F	"func1
+V2	K	#NC
+V4	K	#N9
+G5	I	"g
+G7	I	F	"func1
 {
 \
-A4	I	"x
-A6	P	"p
-	G1	#I1	:I
-	A4	#I1	:I
-	A6	A4	'P	:P
-	A6	@I	#I0	:I
-	y	L8	A4	#I0	=I
+A8	I	"x
+A10	P	"p
+	G5	#I1	:I
+	A8	#I1	:I
+	A10	A8	'P	:P
+	A10	@I	#I0	:I
+	y	L11	A8	#I0	=I
 	h	#I1
-L8
-	A6	G1	'P	:P
-	A6	@I	#I0	:I
-	y	L9	A6	#P0	!I
+L11
+	A10	G5	'P	:P
+	A10	@I	#I0	:I
+	y	L12	A10	#P0	!I
 	h	#I1
-L9
+L12
 	h	#I0
 }
-G11	I	F	"func2
+G13	I	F	"func2
 {
 \
-A12	I	"x
-A14	P	"p
-A17	P	"pp
-	A12	#I1	:I
-	A14	A12	'P	:P
-	A17	A14	'P	:P
-	y	L19	A14	#P0	=I
-	A17	@P	@I	#I0	:I
+A14	I	"x
+A16	P	"p
+A18	P	"pp
+	A14	#I1	:I
+	A16	A14	'P	:P
+	A18	A16	'P	:P
+	y	L19	A16	#P0	=I
+	A18	@P	@I	#I0	:I
 L19
-	A14	#P0	:P
-	h	A12
+	A16	#P0	:P
+	h	A14
 }
 */
 
--- a/cc1/tests/test017.c
+++ b/cc1/tests/test017.c
@@ -5,25 +5,27 @@
 description: Basic test about pointers and structs
 error:
 output:
-G10	I	F	"main
+V2	K	#NC
+V4	K	#N9
+S6	"s1	#N4	#N1
+M7	I	"y	#N0
+M8	I	"z	#N2
+S10	"s2	#N4	#N2
+M12	P	"p	#N0
+G14	I	F	"main
 {
 \
-S2	"s1	#N4	#N1
-M3	I	"y	#N0
-M4	I	"z	#N2
-A11	S2	"nested
-S6	"s2	#N4	#N2
-M8	P	"p	#N0
-A12	S6	"v
-	A12	M8	.P	A11	'P	:P
-	A12	M8	.P	@S2	M3	.I	#I1	:I
-	A12	M8	.P	@S2	M4	.I	#I2	:I
-	y	L13	A11	M3	.I	#I1	=I
+A15	S6	"nested
+A16	S10	"v
+	A16	M12	.P	A15	'P	:P
+	A16	M12	.P	@S6	M7	.I	#I1	:I
+	A16	M12	.P	@S6	M8	.I	#I2	:I
+	y	L17	A15	M7	.I	#I1	=I
 	h	#I1
-L13
-	y	L14	A11	M4	.I	#I2	=I
+L17
+	y	L18	A15	M8	.I	#I2	=I
 	h	#I2
-L14
+L18
 	h	#I0
 }
 */
--- a/cc1/tests/test018.c
+++ b/cc1/tests/test018.c
@@ -5,32 +5,34 @@
 description: Basic test for arrays
 error:
 output:
-G2	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G6	I	F	"main
 {
 \
-V3	K	#N4
-V4	V3	#N2
-A5	V4	"arr
-A7	P	"p
-A9	P	"q
-V10	I	#N4
-A11	V10	"v
-	A7	A5	'P	:P
-	A9	A5	'P	#P4	+P	#P3	+P	:P
-	A5	'P	#P4	+P	#P3	+P	@K	#K2	:K
-	A11	#I2	:I
-	y	L15	A5	'P	#P4	+P	#P3	+P	@K	gI	#I2	=I
+V7	K	#N4
+V8	V7	#N2
+A9	V8	"arr
+A11	P	"p
+A13	P	"q
+V14	I	#N4
+A15	V14	"v
+	A11	A9	'P	:P
+	A13	A9	'P	#P4	+P	#P3	+P	:P
+	A9	'P	#P4	+P	#P3	+P	@K	#K2	:K
+	A15	#I2	:I
+	y	L17	A9	'P	#P4	+P	#P3	+P	@K	gI	#I2	=I
 	h	#I1
-L15
-	y	L16	A7	#P4	+P	#P3	+P	@K	gI	#I2	=I
-	h	#I1
-L16
-	y	L17	A9	@K	gI	#I2	=I
-	h	#I1
 L17
-	y	L18	A11	#I2	=I
+	y	L18	A11	#P4	+P	#P3	+P	@K	gI	#I2	=I
 	h	#I1
 L18
+	y	L19	A13	@K	gI	#I2	=I
+	h	#I1
+L19
+	y	L20	A15	#I2	=I
+	h	#I1
+L20
 	h	#I0
 }
 */
--- a/cc1/tests/test019.c
+++ b/cc1/tests/test019.c
@@ -7,29 +7,31 @@
 test019.c:12: warning: division by 0
 test019.c:13: warning: division by 0
 output:
-G2	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G6	I	F	"main
 {
 \
-A3	I	"i
-	A3	#I3	:I
-	A3	#I1	:I
-	A3	#I12	:I
-	A3	#I2	:I
-	A3	#I0	:I
-	A3	A3	#I0	%I	:I
-	A3	A3	#I0	%I	:I
-	A3	#I8	:I
-	A3	#I2	:I
-	A3	#I4	:I
-	A3	#IC	:I
-	A3	#I8	:I
-	A3	#IFFFD	:I
-	A3	#IFFF3	:I
-	A3	#I1	:I
-	A3	#I0	:I
-	A3	#I0	:I
-	A3	#I1	:I
-	A3	#I0	:I
+A7	I	"i
+	A7	#I3	:I
+	A7	#I1	:I
+	A7	#I12	:I
+	A7	#I2	:I
+	A7	#I0	:I
+	A7	A7	#I0	%I	:I
+	A7	A7	#I0	%I	:I
+	A7	#I8	:I
+	A7	#I2	:I
+	A7	#I4	:I
+	A7	#IC	:I
+	A7	#I8	:I
+	A7	#IFFFD	:I
+	A7	#IFFF3	:I
+	A7	#I1	:I
+	A7	#I0	:I
+	A7	#I0	:I
+	A7	#I1	:I
+	A7	#I0	:I
 }
 */
 
--- a/cc1/tests/test020.c
+++ b/cc1/tests/test020.c
@@ -4,44 +4,46 @@
 name: TEST020
 description: Basic test for integer algebraic identities
 error:
-test020.c:82: warning: division by 0
-test020.c:83: warning: division by 0
+test020.c:84: warning: division by 0
+test020.c:85: warning: division by 0
 output:
-G2	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G6	I	F	"main
 {
 \
-A3	I	"i
-	A3	A3	#I0	!I	:I
-	A3	A3	#I0	!I	#I1	,I	:I
-	A3	#I1	:I
-	A3	A3	#I0	!I	:I
-	A3	A3	#I0	!I	#I0	,I	:I
-	A3	A3	#I0	!I	:I
-	A3	A3	#I0	!I	:I
-	A3	#I0	:I
-	A3	A3	:I
-	A3	#I0	:I
-	A3	A3	:I
-	A3	#I0	:I
-	A3	A3	:I
-	A3	A3	:I
-	A3	A3	:I
-	A3	#I0	A3	-I	:I
-	A3	A3	:I
-	A3	A3	:I
-	A3	A3	:I
-	A3	A3	:I
-	A3	A3	#I0	,I	:I
-	A3	A3	#I0	,I	:I
-	A3	A3	:I
-	A3	A3	:I
-	A3	A3	:I
-	A3	#I1	A3	/I	:I
-	A3	A3	:I
-	A3	A3	:I
-	A3	A3	#I1	,I	:I
-	A3	A3	#I0	/I	:I
-	A3	A3	#I0	%I	:I
+A7	I	"i
+	A7	A7	#I0	!I	:I
+	A7	A7	#I0	!I	#I1	,I	:I
+	A7	#I1	:I
+	A7	A7	#I0	!I	:I
+	A7	A7	#I0	!I	#I0	,I	:I
+	A7	A7	#I0	!I	:I
+	A7	A7	#I0	!I	:I
+	A7	#I0	:I
+	A7	A7	:I
+	A7	#I0	:I
+	A7	A7	:I
+	A7	#I0	:I
+	A7	A7	:I
+	A7	A7	:I
+	A7	A7	:I
+	A7	#I0	A7	-I	:I
+	A7	A7	:I
+	A7	A7	:I
+	A7	A7	:I
+	A7	A7	:I
+	A7	A7	#I0	,I	:I
+	A7	A7	#I0	,I	:I
+	A7	A7	:I
+	A7	A7	:I
+	A7	A7	:I
+	A7	#I1	A7	/I	:I
+	A7	A7	:I
+	A7	A7	:I
+	A7	A7	#I1	,I	:I
+	A7	A7	#I0	/I	:I
+	A7	A7	#I0	%I	:I
 }
 */
 
--- a/cc1/tests/test021.c
+++ b/cc1/tests/test021.c
@@ -6,21 +6,23 @@
 comments: This test is done for z80 implementation
 error:
 output:
-G2	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G6	I	F	"main
 {
 \
-A3	K	"uc
-A4	C	"sc
-	A3	#KFF	:K
-	A3	#K23	:K
-	A3	#K1	:K
-	A3	#K1	:K
-	A3	#K41	:K
-	A4	#CFF	:C
-	A4	#C23	:C
-	A4	#C1	:C
-	A4	#C1	:C
-	A4	#C41	:C
+A7	K	"uc
+A8	C	"sc
+	A7	#KFF	:K
+	A7	#K23	:K
+	A7	#K1	:K
+	A7	#K1	:K
+	A7	#K41	:K
+	A8	#CFF	:C
+	A8	#C23	:C
+	A8	#C1	:C
+	A8	#C1	:C
+	A8	#C41	:C
 }
 */
 
--- a/cc1/tests/test022.c
+++ b/cc1/tests/test022.c
@@ -6,27 +6,29 @@
 comments: This test is done for z80 data types
 error:
 output:
-G2	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G6	I	F	"main
 {
 \
-A3	I	"i
-A4	N	"u
-	A3	#I1	:I
-	A3	#IFFFF	:I
-	A3	#IFFFF	:I
-	A3	#IFFFF	:I
-	A3	#IFFFF	:I
-	A3	#I3	:I
-	A3	#I1	:I
-	A3	#I0	:I
-	A4	#N1	:N
-	A4	#NFFFF	:N
-	A4	#NFFFF	:N
-	A4	#NFFFF	:N
-	A4	#NFFFF	:N
-	A4	#N0	:N
-	A4	#N3	:N
-	A4	#N0	:N
+A7	I	"i
+A8	N	"u
+	A7	#I1	:I
+	A7	#IFFFF	:I
+	A7	#IFFFF	:I
+	A7	#IFFFF	:I
+	A7	#IFFFF	:I
+	A7	#I3	:I
+	A7	#I1	:I
+	A7	#I0	:I
+	A8	#N1	:N
+	A8	#NFFFF	:N
+	A8	#NFFFF	:N
+	A8	#NFFFF	:N
+	A8	#NFFFF	:N
+	A8	#N0	:N
+	A8	#N3	:N
+	A8	#N0	:N
 	h	#I0
 }
 */
--- a/cc1/tests/test023.c
+++ b/cc1/tests/test023.c
@@ -6,27 +6,29 @@
 comments: This test is done for z80 data types
 error:
 output:
-G2	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G6	I	F	"main
 {
 \
-A3	W	"i
-A4	Z	"u
-	A3	#W1	:W
-	A3	#WFFFFFFFF	:W
-	A3	#WFFFFFFFF	:W
-	A3	#WFFFF	:W
-	A3	#WFFFFFFFF	:W
-	A3	#W3	:W
-	A3	#W1	:W
-	A3	#W0	:W
-	A4	#Z1	:Z
-	A4	#ZFFFFFFFF	:Z
-	A4	#ZFFFFFFFF	:Z
-	A4	#ZFFFF	:Z
-	A4	#ZFFFFFFFF	:Z
-	A4	#Z3	:Z
-	A4	#Z1	:Z
-	A4	#Z0	:Z
+A7	W	"i
+A8	Z	"u
+	A7	#W1	:W
+	A7	#WFFFFFFFF	:W
+	A7	#WFFFFFFFF	:W
+	A7	#WFFFF	:W
+	A7	#WFFFFFFFF	:W
+	A7	#W3	:W
+	A7	#W1	:W
+	A7	#W0	:W
+	A8	#Z1	:Z
+	A8	#ZFFFFFFFF	:Z
+	A8	#ZFFFFFFFF	:Z
+	A8	#ZFFFF	:Z
+	A8	#ZFFFFFFFF	:Z
+	A8	#Z3	:Z
+	A8	#Z1	:Z
+	A8	#Z0	:Z
 	h	#I0
 }
 */
--- a/cc1/tests/test024.c
+++ b/cc1/tests/test024.c
@@ -6,25 +6,27 @@
 comments: This test is done for z80 data types
 error:
 output:
-G2	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G6	I	F	"main
 {
 \
-A3	Q	"i
-A4	O	"u
-	A3	#Q1	:Q
-	A3	#QFFFFFFFFFFFFFFFF	:Q
-	A3	#QFFFFFFFFFFFFFFFF	:Q
-	A3	#QFFFF	:Q
-	A3	#QFFFFFFFFFFFFFFFF	:Q
-	A3	#Q3	:Q
-	A3	#Q1	:Q
-	A4	#O1	:O
-	A4	#OFFFFFFFFFFFFFFFF	:O
-	A4	#OFFFFFFFFFFFFFFFF	:O
-	A4	#OFFFF	:O
-	A4	#OFFFFFFFFFFFFFFFF	:O
-	A4	#O3	:O
-	A4	#O0	:O
+A7	Q	"i
+A8	O	"u
+	A7	#Q1	:Q
+	A7	#QFFFFFFFFFFFFFFFF	:Q
+	A7	#QFFFFFFFFFFFFFFFF	:Q
+	A7	#QFFFF	:Q
+	A7	#QFFFFFFFFFFFFFFFF	:Q
+	A7	#Q3	:Q
+	A7	#Q1	:Q
+	A8	#O1	:O
+	A8	#OFFFFFFFFFFFFFFFF	:O
+	A8	#OFFFFFFFFFFFFFFFF	:O
+	A8	#OFFFF	:O
+	A8	#OFFFFFFFFFFFFFFFF	:O
+	A8	#O3	:O
+	A8	#O0	:O
 	h	#I0
 }
 */
--- a/cc1/tests/test025.c
+++ b/cc1/tests/test025.c
@@ -5,16 +5,18 @@
 descritpion: Test of ifdef and ifndef
 error:
 output:
-G1	I	"a
-G2	I	"b
-G3	I	"c
-G4	I	"d
-G5	I	"_1
-G6	I	"_2
-G7	I	"e_
-G8	I	"f_
-G9	I	"h
-G10	I	"i
+V2	K	#NC
+V4	K	#N9
+G5	I	"a
+G6	I	"b
+G7	I	"c
+G8	I	"d
+G9	I	"_1
+G10	I	"_2
+G11	I	"e_
+G12	I	"f_
+G13	I	"h
+G14	I	"i
 */
 
 #define FOO
--- a/cc1/tests/test026.c
+++ b/cc1/tests/test026.c
@@ -5,22 +5,24 @@
 descritpion: Test of predefined cpp macros
 error:
 output:
-G3	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G7	I	F	"main
 {
 \
-A4	I	"y
-A6	P	"p
-V8	K	#NA
-Y7	V8	"	(
+A8	I	"y
+A10	P	"p
+V12	K	#NA
+Y11	V12	"	(
 	#"test026.c
 	#K00
 )
-	A6	Y7	'P	:P
-	A4	#I24	:I
-	A4	#I1	:I
-	A4	#I1	:I
-	A4	#I1	:I
-	A4	#I1	:I
+	A10	Y11	'P	:P
+	A8	#I26	:I
+	A8	#I1	:I
+	A8	#I1	:I
+	A8	#I1	:I
+	A8	#I1	:I
 }
 */
 
--- a/cc1/tests/test027.c
+++ b/cc1/tests/test027.c
@@ -5,17 +5,19 @@
 description: Test of cpp stringizer
 error:
 output:
-G3	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G7	I	F	"main
 {
 \
-A5	P	"p
-V7	K	#N19
-Y6	V7	"	(
+A9	P	"p
+V11	K	#N19
+Y10	V11	"	(
 	#"hello is better than bye
 	#K00
 )
-	A5	Y6	'P	:P
-	h	A5	@K	gI
+	A9	Y10	'P	:P
+	h	A9	@K	gI
 }
 */
 
--- a/cc1/tests/test028.c
+++ b/cc1/tests/test028.c
@@ -5,15 +5,17 @@
 description: Test of reinterpretation in define
 error:
 output:
-G6	P	F	"foo
+V2	K	#NC
+V4	K	#N9
+G10	P	F	"foo
 {
 \
-V8	K	#N3
-Y10	V8	"	(
+V12	K	#N3
+Y14	V12	"	(
 	#"hi
 	#K00
 )
-	h	Y10	'P
+	h	Y14	'P
 }
 */
 
--- a/cc1/tests/test029.c
+++ b/cc1/tests/test029.c
@@ -7,16 +7,18 @@
           moment f will not be expanded because the macro definition is
           a function alike macro, and in this case there is no arguments.
 error:
-test029.c:32: warning: expression without side effects
-test029.c:37: error: redefinition of 'f1'
-test029.c:38: error: 'f' undeclared
-test029.c:38: warning: expression without side effects
+test029.c:34: warning: expression without side effects
+test029.c:39: error: redefinition of 'f1'
+test029.c:40: error: 'f' undeclared
+test029.c:40: warning: expression without side effects
 output:
-G3	I	F	"f1
+V2	K	#NC
+V4	K	#N9
+G7	I	F	"f1
 {
 \
-A4	I	"f
-	A4	#I2	*I
+A8	I	"f
+	A8	#I2	*I
 }
 */
 
--- a/cc1/tests/test030.c
+++ b/cc1/tests/test030.c
@@ -5,30 +5,32 @@
 description: Basic test for vararg functions
 error:
 output:
-G14	I	F	"f1
+V2	K	#NC
+V4	K	#N9
+S6	"foo	#N18	#N2
+M7	I	"i	#N0
+M8	I	"j	#N2
+M9	I	"k	#N4
+M11	P	"p	#N6
+M12	J	"v	#N8
+G18	I	F	"f1
 {
-S2	"foo	#N18	#N2
-M3	I	"i	#N0
-M4	I	"j	#N2
-M5	I	"k	#N4
-M7	P	"p	#N6
-M8	J	"v	#N8
-A9	S2	"f
-A11	P	"p
-A12	I	"n
+A13	S6	"f
+A15	P	"p
+A16	I	"n
 \
-	y	L15	A9	M3	.I	A11	@S2	M3	.I	=I
+	y	L19	A13	M7	.I	A15	@S6	M7	.I	=I
 	h	#I0
-L15
-	h	A11	@S2	M4	.I	A12	+I
+L19
+	h	A15	@S6	M8	.I	A16	+I
 }
-G17	I	F	"main
+G21	I	F	"main
 {
 \
-A18	S2	"f
-	A18	M3	.I	A18	M4	.I	#I1	:I	:I
-	G14	A18	pS2	A18	'P	pP	#I2	pI	cI
-	G14	A18	pS2	A18	'P	pP	#I2	pI	#I1	pI	A18	pS2	A18	'P	pP	cI
+A22	S6	"f
+	A22	M7	.I	A22	M8	.I	#I1	:I	:I
+	G18	A22	pS6	A22	'P	pP	#I2	pI	cI
+	G18	A22	pS6	A22	'P	pP	#I2	pI	#I1	pI	A22	pS6	A22	'P	pP	cI
 	h	#I0
 }
 */
--- a/cc1/tests/test032.c
+++ b/cc1/tests/test032.c
@@ -5,17 +5,20 @@
 description: test special characters @ and $ in macro definitions
 error:
 output:
-G5	I	F	"main
+V2	K	#NC
+V4	K	#N9
+V7	K	#N1E
+G9	I	F	"main
 {
 \
-V9	K	#N2C
-Y8	V9	"	(
+V13	K	#N2C
+Y12	V13	"	(
 	#"This is a string $ or # or ##and it is ok !
 	#K00
 )
-A7	P	"p
-	A7	Y8	'P	:P
-	h	A7	#P0	!I
+A11	P	"p
+	A11	Y12	'P	:P
+	h	A11	#P0	!I
 }
 */
 
--- a/cc1/tests/test033.c
+++ b/cc1/tests/test033.c
@@ -5,7 +5,9 @@
 description: test for #if defined()
 error:
 output:
-G1	I	"c
+V2	K	#NC
+V4	K	#N9
+G5	I	"c
 */
 
 #if defined(FOO)
--- a/cc1/tests/test034.c
+++ b/cc1/tests/test034.c
@@ -4,24 +4,28 @@
 name: TEST034
 description: Basic test for incomplete structures
 error:
-test034.c:46: error: declared variable 'bar' of incomplete type
-test034.c:46: error: redeclaration of 'bar'
+test034.c:50: error: declared variable 'bar' of incomplete type
+test034.c:50: error: redeclaration of 'bar'
 output:
-X3	S2	"x
-X5	I	F	"foo
-G7	I	F	"main
+V2	K	#NC
+V4	K	#N9
+X7	S6	"x
+X9	I	F	"foo
+G10	I	F	"main
 {
 \
-X8	S2	"x
-	h	X8	'P	#P0	!I
+X11	S6	"x
+	h	X11	'P	#P0	!I
 }
-G5	I	F	"foo
+S6	"X	#N2	#N1
+M13	I	"v	#N0
+G9	I	F	"foo
 {
 \
-	X3	M10	.I	#I0	:I
-	h	X3	M10	.I
+	X7	M13	.I	#I0	:I
+	h	X7	M13	.I
 }
-X14	S12	"bar2
+X17	S15	"bar2
 */
 
 extern struct X x;
--- a/cc1/tests/test035.c
+++ b/cc1/tests/test035.c
@@ -5,25 +5,8 @@
 description: Basic test for enumerations
 error:
 output:
-G7	I	F	"main
-{
-\
-A8	I	"e
-	A8	#I3	:I
-	y	L9	A8	#I1	=I
-	h	#I0
-L9
-	y	L10	A8	#I0	=I
-	h	#I1
-L10
-	y	L11	A8	#I2	=I
-	h	#I2
-L11
-	y	L12	A8	#I3	=I
-	h	#I3
-L12
-	h	#I0
-}
+V2	K	#NC
+V4	K	#N9
 */
 
 enum E {
--- a/cc1/tests/test036.c
+++ b/cc1/tests/test036.c
@@ -4,48 +4,50 @@
 name: TEST036
 description: Duff's device
 error:
-test036.c:59: warning: type defaults to 'int' in declaration
+test036.c:61: warning: type defaults to 'int' in declaration
 output:
-G5	I	F	"send
+V2	K	#NC
+V4	K	#N9
+G9	I	F	"send
 {
-R1	P	"to
-R2	P	"from
-R3	I	"count
+R5	P	"to
+R6	P	"from
+R7	I	"count
 \
-R8	I	"n
-	R8	R3	#I7	+I	#I8	/I	:I
-	s	R3	#I8	%I
-	v	L10	#I0
-L10
-	e
-L11
-	R1	@I	R2	#P2	:iP	@I	:I
-	v	L13	#I7
+R11	I	"n
+	R11	R7	#I7	+I	#I8	/I	:I
+	s	R7	#I8	%I
+	v	L13	#I0
 L13
-	R1	@I	R2	#P2	:iP	@I	:I
-	v	L14	#I6
+	e
 L14
-	R1	@I	R2	#P2	:iP	@I	:I
-	v	L15	#I5
-L15
-	R1	@I	R2	#P2	:iP	@I	:I
-	v	L16	#I4
+	R5	@I	R6	#P2	:iP	@I	:I
+	v	L16	#I7
 L16
-	R1	@I	R2	#P2	:iP	@I	:I
-	v	L17	#I3
+	R5	@I	R6	#P2	:iP	@I	:I
+	v	L17	#I6
 L17
-	R1	@I	R2	#P2	:iP	@I	:I
-	v	L18	#I2
+	R5	@I	R6	#P2	:iP	@I	:I
+	v	L18	#I5
 L18
-	R1	@I	R2	#P2	:iP	@I	:I
-	v	L19	#I1
+	R5	@I	R6	#P2	:iP	@I	:I
+	v	L19	#I4
 L19
-	R1	@I	R2	#P2	:iP	@I	:I
-	y	L11	R8	#I1	:-I	#I0	>I
+	R5	@I	R6	#P2	:iP	@I	:I
+	v	L20	#I3
+L20
+	R5	@I	R6	#P2	:iP	@I	:I
+	v	L21	#I2
+L21
+	R5	@I	R6	#P2	:iP	@I	:I
+	v	L22	#I1
+L22
+	R5	@I	R6	#P2	:iP	@I	:I
+	y	L14	R11	#I1	:-I	#I0	>I
 	b
+L15
+	t	L12
 L12
-	t	L9
-L9
 }
 */
 
--- a/cc1/tests/test037.c
+++ b/cc1/tests/test037.c
@@ -5,22 +5,24 @@
 description: Basic sizeof test
 comments: This test is based in z80 sizes
 error:
-test037.c:30: warning: conditional expression is constant
 test037.c:32: warning: conditional expression is constant
 test037.c:34: warning: conditional expression is constant
+test037.c:36: warning: conditional expression is constant
 output:
-G2	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G6	I	F	"main
 {
 \
-	y	L3	#I1
+	y	L7	#I1
 	h	#I1
-L3
-	y	L4	#I1
+L7
+	y	L8	#I1
 	h	#I2
-L4
-	y	L5	#I1
+L8
+	y	L9	#I1
 	h	#I3
-L5
+L9
 	h	#I0
 }
 */
--- a/cc1/tests/test038.c
+++ b/cc1/tests/test038.c
@@ -4,23 +4,25 @@
 name: TEST038
 description: Basic test for tentative definitions
 error:
-test038.c:45: error: redeclaration of 'x'
+test038.c:47: error: redeclaration of 'x'
 output:
-G1	I	"x
-G1	I	"x	(
+V2	K	#NC
+V4	K	#N9
+G5	I	"x
+G5	I	"x	(
 	#I0
 )
-X3	I	F	"main
-G5	P	F	"foo
+X7	I	F	"main
+G9	P	F	"foo
 {
 \
-	h	X3	'P
+	h	X7	'P
 }
-G3	I	F	"main
+G7	I	F	"main
 {
 \
-	G1	#I0	:I
-	h	G1
+	G5	#I0	:I
+	h	G5
 }
 */
 
--- a/cc1/tests/test039.c
+++ b/cc1/tests/test039.c
@@ -6,28 +6,30 @@
 comments: This test is done for z80 sizes
 error:
 output:
-G2	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G6	I	F	"main
 {
 \
-A3	I	"i
-A4	N	"u
-A5	W	"l
-A6	Z	"ul
-A7	Q	"ll
-A8	O	"ull
-	A3	#I1	:I
-	A3	#I1	:I
-	A4	#N1	:N
-	A4	#N1	:N
-	A5	#W1	:W
-	A5	#W0	:W
-	A4	#N0	:N
-	A6	#Z1	:Z
-	A5	#W1	:W
-	A7	#Q0	:Q
-	A6	#Z0	:Z
-	A8	#O1	:O
-	A8	#O1	:O
+A7	I	"i
+A8	N	"u
+A9	W	"l
+A10	Z	"ul
+A11	Q	"ll
+A12	O	"ull
+	A7	#I1	:I
+	A7	#I1	:I
+	A8	#N1	:N
+	A8	#N1	:N
+	A9	#W1	:W
+	A9	#W0	:W
+	A8	#N0	:N
+	A10	#Z1	:Z
+	A9	#W1	:W
+	A11	#Q0	:Q
+	A10	#Z0	:Z
+	A12	#O1	:O
+	A12	#O1	:O
 	h	#I0
 }
 */
--- a/cc1/tests/test040.c
+++ b/cc1/tests/test040.c
@@ -5,15 +5,17 @@
 description: Test for bug parsing typenames in struct definition
 error:
 output:
-G10	I	F	"main
+V2	K	#NC
+V4	K	#N9
+S6	"List	#NC	#N2
+M8	I	"len	#N0
+M10	P	"head	#N2
+M11	P	"back	#N4
+G13	I	F	"main
 {
 \
-S2	"List	#NC	#N2
-M4	I	"len	#N0
-M6	P	"head	#N2
-M8	P	"back	#N4
-A11	S2	"List
-	h	A11	M4	.I
+A14	S6	"List
+	h	A14	M8	.I
 }
 */
 
--- a/cc1/tests/test041.c
+++ b/cc1/tests/test041.c
@@ -4,32 +4,34 @@
 name: TEST041
 description: Test for bug parsing ternary operators
 error:
-test041.c:51: error: type mismatch in conditional expression
-test041.c:51: error: incompatible types when assigning
-test041.c:52: error: used struct/union type value where scalar is required
-test041.c:52: warning: expression without side effects
-test041.c:53: warning: 'i' defined but not used
-test041.c:53: warning: 'foo' defined but not used
-test041.c:53: warning: 's' defined but not used
+test041.c:53: error: type mismatch in conditional expression
+test041.c:53: error: incompatible types when assigning
+test041.c:54: error: used struct/union type value where scalar is required
+test041.c:54: warning: expression without side effects
+test041.c:55: warning: 'i' defined but not used
+test041.c:55: warning: 'foo' defined but not used
+test041.c:55: warning: 's' defined but not used
 output:
-G2	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G6	I	F	"main
 {
 \
-A3	I	"i
-A5	P	"q
-A7	P	"s
-A8	P	"p
-S10	"foo	#N2	#N1
-M11	I	"i	#N0
-A12	S10	"foo
-	A3	A3	#I0	!I	#W0	#W0	?W	gI	:I
-	A8	A3	#I0	!I	#P0	#P0	?P	:P
-	A8	A3	#I0	!I	#P0	#P0	?P	:P
-	A8	A3	#I0	!I	#P0	#P0	?P	:P
-	A5	A3	#I0	!I	#P0	A8	?P	:P
-	A5	A3	#I0	!I	A8	#P0	?P	:P
-	A5	A3	#I0	!I	A5	#P0	?P	:P
-	A5	A3	#I0	!I	#P0	A5	?P	:P
+A7	I	"i
+A9	P	"q
+A11	P	"s
+A12	P	"p
+S14	"foo	#N2	#N1
+M15	I	"i	#N0
+A16	S14	"foo
+	A7	A7	#I0	!I	#W0	#W0	?W	gI	:I
+	A12	A7	#I0	!I	#P0	#P0	?P	:P
+	A12	A7	#I0	!I	#P0	#P0	?P	:P
+	A12	A7	#I0	!I	#P0	#P0	?P	:P
+	A9	A7	#I0	!I	#P0	A12	?P	:P
+	A9	A7	#I0	!I	A12	#P0	?P	:P
+	A9	A7	#I0	!I	A9	#P0	?P	:P
+	A9	A7	#I0	!I	#P0	A9	?P	:P
 */
    
 int
--- a/cc1/tests/test042.c
+++ b/cc1/tests/test042.c
@@ -4,12 +4,14 @@
 name: TEST042
 description: Test for bug parsing ternary operators
 error:
-test042.c:20: error: bad type conversion requested
+test042.c:22: error: bad type conversion requested
 output:
-G2	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G6	I	F	"main
 {
 \
-X4	0	F	"f
+X8	0	F	"f
 */
 
 int
--- a/cc1/tests/test043.c
+++ b/cc1/tests/test043.c
@@ -5,14 +5,16 @@
 description: Test for double typedef (taken from plan9 kernel)
 error:
 output:
-S2	"Clock0link	#N8	#N2
-M6	P	"clock	#N0
-M8	P	"link	#N2
-G9	S2	"cl0
-G11	I	F	"main
+V2	K	#NC
+V4	K	#N9
+S6	"Clock0link	#N8	#N2
+M10	P	"clock	#N0
+M12	P	"link	#N2
+G13	S6	"cl0
+G15	I	F	"main
 {
 \
-	G9	M6	.P	@F	c0
+	G13	M10	.P	@F	c0
 	h	#I0
 }
 */
--- a/cc1/tests/test045.c
+++ b/cc1/tests/test045.c
@@ -5,15 +5,17 @@
 description: Basic test of initializers
 error:
 output:
-G1	I	"x	(
+V2	K	#NC
+V4	K	#N9
+G5	I	"x	(
 	#I5
 )
-G3	I	F	"main
+G7	I	F	"main
 {
 \
-	y	L4	G1	#I5	=I
+	y	L8	G5	#I5	=I
 	h	#I1
-L4
+L8
 	h	#I0
 }
 */
--- a/cc1/tests/test046.c
+++ b/cc1/tests/test046.c
@@ -5,24 +5,26 @@
 description: Basic test for initializators
 error:
 output:
-V1	I	#N3
-G2	V1	"x	(
+V2	K	#NC
+V4	K	#N9
+V5	I	#N3
+G6	V5	"x	(
 	#I1
 	#I2
 	#I3
 )
-G4	I	F	"main
+G8	I	F	"main
 {
 \
-	y	L5	G2	#I1	=I
+	y	L9	G6	#I1	=I
 	h	#I1
-L5
-	y	L7	G2	'P	#P2	+P	@I	#I2	=I
+L9
+	y	L11	G6	'P	#P2	+P	@I	#I2	=I
 	h	#I2
-L7
-	y	L9	G2	'P	#P4	+P	@I	#I3	=I
+L11
+	y	L12	G6	'P	#P4	+P	@I	#I3	=I
 	h	#I3
-L9
+L12
 	h	#I0
 }
 */
--- a/cc1/tests/test047.c
+++ b/cc1/tests/test047.c
@@ -5,27 +5,29 @@
 description: Basic test for initializer
 error:
 output:
-S2	"S	#N6	#N1
-M3	I	"a	#N0
-M4	I	"b	#N2
-M5	I	"c	#N4
-G6	S2	"x	(
+V2	K	#NC
+V4	K	#N9
+S6	"S	#N6	#N1
+M7	I	"a	#N0
+M8	I	"b	#N2
+M9	I	"c	#N4
+G10	S6	"x	(
 	#I1
 	#I2
 	#I3
 )
-G8	I	F	"main
+G12	I	F	"main
 {
 \
-	y	L9	G6	M3	.I	#I1	=I
+	y	L13	G10	M7	.I	#I1	=I
 	h	#I1
-L9
-	y	L10	G6	M4	.I	#I2	=I
+L13
+	y	L14	G10	M8	.I	#I2	=I
 	h	#I2
-L10
-	y	L11	G6	M5	.I	#I3	=I
+L14
+	y	L15	G10	M9	.I	#I3	=I
 	h	#I3
-L11
+L15
 	h	#I0
 }
 */
--- a/cc1/tests/test048.c
+++ b/cc1/tests/test048.c
@@ -5,23 +5,25 @@
 description: Basic test for initializer
 error:
 output:
-S2	"S	#N4	#N1
-M3	I	"a	#N0
-M4	I	"b	#N2
-V5	S2	#N1
-G6	V5	"x	(
+V2	K	#NC
+V4	K	#N9
+S6	"S	#N4	#N1
+M7	I	"a	#N0
+M8	I	"b	#N2
+V9	S6	#N1
+G10	V9	"x	(
 	#I1
 	#I2
 )
-G8	I	F	"main
+G12	I	F	"main
 {
 \
-	y	L9	G6	M3	.I	#I1	=I
+	y	L13	G10	M7	.I	#I1	=I
 	h	#I1
-L9
-	y	L11	G6	M4	.I	#I2	=I
+L13
+	y	L15	G10	M8	.I	#I2	=I
 	h	#I2
-L11
+L15
 	h	#I0
 }
 */
--- a/cc1/tests/test049.c
+++ b/cc1/tests/test049.c
@@ -5,18 +5,20 @@
 description: Basic test for initializer
 error:
 output:
-G1	I	"x	(
+V2	K	#NC
+V4	K	#N9
+G5	I	"x	(
 	#I5
 )
-G3	P	"p	(
-	G1	'P
+G7	P	"p	(
+	G5	'P
 )
-G6	I	F	"main
+G9	I	F	"main
 {
 \
-	y	L7	G3	@I	#I5	=I
+	y	L10	G7	@I	#I5	=I
 	h	#I1
-L7
+L10
 	h	#I0
 }
 */
--- a/cc1/tests/test051.c
+++ b/cc1/tests/test051.c
@@ -5,24 +5,26 @@
 description: Basic test for initializer
 error:
 output:
-V1	I	#N3
-G2	V1	"arr	(
+V2	K	#NC
+V4	K	#N9
+V5	I	#N3
+G6	V5	"arr	(
 	#I0
 	#I1
 	#I2
 )
-G4	I	F	"main
+G8	I	F	"main
 {
 \
-	y	L5	G2	#I0	=I
+	y	L9	G6	#I0	=I
 	h	#I1
-L5
-	y	L7	G2	'P	#P2	+P	@I	#I1	=I
+L9
+	y	L11	G6	'P	#P2	+P	@I	#I1	=I
 	h	#I2
-L7
-	y	L9	G2	'P	#P4	+P	@I	#I2	=I
+L11
+	y	L12	G6	'P	#P4	+P	@I	#I2	=I
 	h	#I3
-L9
+L12
 	h	#I0
 }
 */
--- a/cc1/tests/test052.c
+++ b/cc1/tests/test052.c
@@ -5,31 +5,33 @@
 description: Basic test for initializer
 error:
 output:
-S2	"S	#N4	#N1
-M3	I	"a	#N0
-M4	I	"b	#N2
-V5	S2	#N2
-G6	V5	"arr	(
+V2	K	#NC
+V4	K	#N9
+S6	"S	#N4	#N1
+M7	I	"a	#N0
+M8	I	"b	#N2
+V9	S6	#N2
+G10	V9	"arr	(
 	#I1
 	#I2
 	#I3
 	#I4
 )
-G8	I	F	"main
+G12	I	F	"main
 {
 \
-	y	L9	G6	M3	.I	#I1	=I
+	y	L13	G10	M7	.I	#I1	=I
 	h	#I1
-L9
-	y	L11	G6	M4	.I	#I2	=I
+L13
+	y	L15	G10	M8	.I	#I2	=I
 	h	#I2
-L11
-	y	L12	G6	'P	#P4	+P	@S2	M3	.I	#I3	=I
+L15
+	y	L16	G10	'P	#P4	+P	@S6	M7	.I	#I3	=I
 	h	#I3
-L12
-	y	L13	G6	'P	#P4	+P	@S2	M4	.I	#I4	=I
+L16
+	y	L17	G10	'P	#P4	+P	@S6	M8	.I	#I4	=I
 	h	#I4
-L13
+L17
 	h	#I0
 }
 */
--- a/cc1/tests/test053.c
+++ b/cc1/tests/test053.c
@@ -5,22 +5,24 @@
 description: Basic test for initializer
 error:
 output:
-S2	"S	#N4	#N1
-M3	I	"a	#N0
-M4	I	"b	#N2
-G5	S2	"s	(
+V2	K	#NC
+V4	K	#N9
+S6	"S	#N4	#N1
+M7	I	"a	#N0
+M8	I	"b	#N2
+G9	S6	"s	(
 	#I1
 	#I2
 )
-G7	I	F	"main
+G11	I	F	"main
 {
 \
-	y	L8	G5	M3	.I	#I1	=I
+	y	L12	G9	M7	.I	#I1	=I
 	h	#I1
-L8
-	y	L9	G5	M4	.I	#I2	=I
+L12
+	y	L13	G9	M8	.I	#I2	=I
 	h	#I2
-L9
+L13
 	h	#I0
 }
 */
--- a/cc1/tests/test056.c
+++ b/cc1/tests/test056.c
@@ -5,14 +5,16 @@
 desciption: Test of overlaying designators
 error:
 output:
-V6	K	#N3
-S2	"S	#NB	#N1
-M3	I	"a	#N0
-M4	I	"b	#N2
-M5	I	"c	#N4
-M7	V6	"d	#N6
-M8	I	"e	#N9
-G9	S2	"s	(
+V2	K	#NC
+V4	K	#N9
+V10	K	#N3
+S6	"S	#NB	#N1
+M7	I	"a	#N0
+M8	I	"b	#N2
+M9	I	"c	#N4
+M11	V10	"d	#N6
+M12	I	"e	#N9
+G13	S6	"s	(
 	#I1
 	#I2
 	#I0
@@ -21,13 +23,12 @@
 	#K0
 	#I0
 )
-V10	K	#N0
-G11	V10	"m	(
+G15	V14	"m	(
 )
-G13	I	F	"main
+G17	I	F	"main
 {
 \
-	h	G9	M7	.V6	'P	#P2	+P	@K	gI	gN	#N0	=I
+	h	G13	M11	.V10	'P	#P2	+P	@K	gI	gN	#N0	=I
 }
 */
 
--- a/cc1/tests/test057.c
+++ b/cc1/tests/test057.c
@@ -5,9 +5,10 @@
 description: test of initialization of incomplete arrays
 error:
 output:
-V1	I	#N3
-V2	V1	#N2
-G3	V2	"arr1	(
+V2	K	#NC
+V4	K	#N9
+V5	I	#N3
+G7	V6	"arr1	(
 	#I2
 	#I7
 	#I5
@@ -15,9 +16,7 @@
 	#I1
 	#I2
 )
-V4	I	#N3
-V5	V4	#N2
-G6	V5	"arr2	(
+G8	V6	"arr2	(
 	#I2
 	#I7
 	#I5
@@ -25,10 +24,10 @@
 	#I1
 	#I2
 )
-G8	I	F	"main
+G10	I	F	"main
 {
 \
-	h	G3	'P	#P6	+P	#P4	+P	@I	G6	'P	#P6	+P	#P6	+P	@I	!I
+	h	G7	'P	#P6	+P	#P4	+P	@I	G8	'P	#P6	+P	#P6	+P	@I	!I
 }
 */
 
--- a/cc1/tests/test058.c
+++ b/cc1/tests/test058.c
@@ -5,10 +5,11 @@
 description: Test of initialization mixing designators and sequence
 error:
 output:
-V1	I	#N5
-V2	V1	#N3
-V3	V2	#N2
-G4	V3	"arr	(
+V2	K	#NC
+V4	K	#N9
+V5	I	#N5
+V6	V5	#N3
+G8	V7	"arr	(
 	#I0
 	#I0
 	#I3
@@ -40,10 +41,10 @@
 	#I0
 	#I0
 )
-G6	I	F	"main
+G10	I	F	"main
 {
 \
-	h	G4	'P	#PA	+P	#P8	+P	@I	G4	'P	#P1E	+P	#PA	+P	#P8	+P	@I	!I
+	h	G8	'P	#PA	+P	#P8	+P	@I	G8	'P	#P1E	+P	#PA	+P	#P8	+P	@I	!I
 }
 */
 
--- a/cc1/tests/test060.c
+++ b/cc1/tests/test060.c
@@ -5,7 +5,9 @@
 description: Test for correctness of #line
 error:
 output:
-G2	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G6	I	F	"main
 {
 \
 	h	#I0
--- a/cc1/tests/test061.c
+++ b/cc1/tests/test061.c
@@ -5,7 +5,9 @@
 description: Test for macros without arguments but with parenthesis
 error:
 output:
-G3	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G7	I	F	"main
 {
 \
 	h	#I1
--- a/cc1/tests/test062.c
+++ b/cc1/tests/test062.c
@@ -5,7 +5,9 @@
 description: Test for hexadecimal numbers in upper and lower case
 error:
 output:
-G2	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G6	I	F	"main
 {
 \
 	h	#I1
--- a/cc1/tests/test064.c
+++ b/cc1/tests/test064.c
@@ -5,14 +5,16 @@
 description: Test function alike macro without parenthesis
 error:
 output:
-G5	I	F	"main
+V2	K	#NC
+V4	K	#N9
+S5	"	#N2	#N1
+M6	I	"f	#N0
+G9	I	F	"main
 {
 \
-S1	"	#N2	#N1
-M2	I	"f	#N0
-A6	S1	"s
-	A6	M2	.I	#I0	:I
-	h	A6	M2	.I
+A10	S5	"s
+	A10	M6	.I	#I0	:I
+	h	A10	M6	.I
 }
 */
 
--- a/cc1/tests/test065.c
+++ b/cc1/tests/test065.c
@@ -4,39 +4,41 @@
 name: TEST065
 description: Test decay mixed with * operators
 error:
-test065.c:65: error: increment of pointer to an incomplete type
-test065.c:65: error: invalid use of undefined type
-test065.c:66: warning: 'argv' defined but not used
+test065.c:67: error: increment of pointer to an incomplete type
+test065.c:67: error: invalid use of undefined type
+test065.c:68: warning: 'argv' defined but not used
 output:
-G7	I	F	"main
+V2	K	#NC
+V4	K	#N9
+G11	I	F	"main
 {
-A1	I	"argc
-A5	P	"argv
+A5	I	"argc
+A9	P	"argv
 \
-V8	I	#N1
-A9	V8	"v
-A12	P	"p
+V12	I	#N1
+A13	V12	"v
+A16	P	"p
 A18	P	"f1
-A21	P	"f2
-	A9	#I0	:I
-	A12	A9	'P	:P
-	A18	G7	'P	:P
-	A21	G7	'P	:P
-	y	L26	A1	#I0	!I
+A19	P	"f2
+	A13	#I0	:I
+	A16	A13	'P	:P
+	A18	G11	'P	:P
+	A19	G11	'P	:P
+	y	L22	A5	#I0	!I
 	h	#I1
-L26
-	y	L27	G7	#I0	pI	#P0	pP	cI	#I0	=I
+L22
+	y	L23	G11	#I0	pI	#P0	pP	cI	#I0	=I
 	h	#I2
-L27
-	y	L28	A18	@F	#I0	pI	#P0	pP	cI	#I0	=I
+L23
+	y	L24	A18	@F	#I0	pI	#P0	pP	cI	#I0	=I
 	h	#I3
-L28
-	y	L29	A21	@F	#I0	pI	#P0	pP	cI	#I0	=I
+L24
+	y	L25	A19	@F	#I0	pI	#P0	pP	cI	#I0	=I
 	h	#I4
-L29
-	y	L30	A12	@I	#I0	!I
+L25
+	y	L26	A16	@I	#I0	!I
 	h	#I0
-L30
+L26
 */
 
 int
--- a/cc1/tests/test066.c
+++ b/cc1/tests/test066.c
@@ -4,13 +4,15 @@
 name: TEST066
 description: Test cpp defined operator
 error:
-test066.c:53: error: operator 'defined' requires an identifier
-test066.c:53: error: expected ')' before '<EOF>'
+test066.c:55: error: operator 'defined' requires an identifier
+test066.c:55: error: expected ')' before '<EOF>'
 output:
-G1	I	"x	(
+V2	K	#NC
+V4	K	#N9
+G5	I	"x	(
 	#I0
 )
-G3	I	F	"main
+G7	I	F	"main
 {
 \
 	h	#I0