shithub: scc

Download patch

ref: 8b47bd6c54891baebf6a1083c7b1f6fa0402b8e4
parent: 2ba7f352c6989b51f15ea72f8b819e739f3ce1e4
author: Roberto E. Vargas Caballero <[email protected]>
date: Sun Sep 27 06:28:19 EDT 2015

Add test for nested macro expansion

This test also check what happens when a macro with arguments  is
found without them.

--- /dev/null
+++ b/cc1/tests/test029.c
@@ -1,0 +1,36 @@
+
+/*
+name: TEST029
+description: Test of nested expansion and refusing macro without arguments
+comments: f(2) will expand to 2*g, which will expand to 2*f, and in this
+          moment f will not be expanded because the macro definition is
+          a function alike macro, and in this case there is no arguments.
+output:
+test029.c:34: error: redefinition of 'f1'
+F2
+G3	F2	f1
+{
+\
+A4	I	f
+	A4	#I2	*I
+}
+test029.c:35: error: 'f' undeclared
+*/
+
+
+#define f(a) a*g
+#define g f
+
+int
+f1(void)
+{
+	int f;
+
+	f(2);
+}
+
+int
+f1(void)
+{
+	f(2);
+}