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);
+}