shithub: scc

Download patch

ref: 05da06ee7b432a9a4a9f14108cece51f6f557114
parent: ffbb1e8dedda4975725bfa5dc501cfbf589301b9
author: Roberto E. Vargas Caballero <[email protected]>
date: Tue Aug 25 11:28:55 EDT 2015

Add basic test for pointers

--- /dev/null
+++ b/cc1/tests/test016.c
@@ -1,0 +1,94 @@
+/*
+name: TEST016
+description: Basic pointer test
+output:
+test016.c:43: error: redefinition of 'func2'
+test016.c:47: error: incompatible types when assigning
+G1	I	g
+F1
+G2	F1	func1
+{
+-
+A2	I	x
+A4	P	p
+	G1	#I1	:I
+	A2	#I1	:I
+	A4	A2	'P	:P
+	A4	@I	#I0	:I
+	j	L5	A2	#I0	=I
+	yI	#I1
+L5
+	A4	G1	'P	:P
+	A4	@I	#I0	:I
+	j	L6	A4	#I0	IP	!I
+	yI	#I1
+L6
+	yI	#I0
+}
+G3	F1	func2
+{
+-
+A1	I	x
+A2	P	p
+A4	P	pp
+	A1	#I1	:I
+	A2	A1	'P	:P
+	A4	A2	'P	:P
+	j	L5	A2	#I0	IP	=I
+	A4	@P	@I	#I0	:I
+L5
+	A2	#I0	IP	:P
+	yI	A1
+}
+????
+*/
+
+#line 1
+
+int g;
+
+int
+func1(void)
+{
+	int  x;
+	int *p;
+
+	g = 1;
+	x = 1;
+	p = &x;
+	*p = 0;
+	if (x)
+		return 1;
+	
+	p = &g;
+	*p = 0;
+	if (p == 0)
+		return 1;
+	return 0;
+}
+
+int
+func2(void)
+{
+	int   x;
+	int  *p;
+	int **pp;
+	
+	x = 1;
+	p = &x;
+	pp = &p;
+	if (p != 0)
+		**pp = 0;
+	p = 0;
+	return x;
+}
+
+int
+func2(void)
+{
+	char c;
+	int *p;
+
+	p = &c;
+	return *p;
+}