aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.base/macscp1.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite/gdb.base/macscp1.c')
-rw-r--r--gdb/testsuite/gdb.base/macscp1.c80
1 files changed, 80 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.base/macscp1.c b/gdb/testsuite/gdb.base/macscp1.c
new file mode 100644
index 0000000..89a1b07
--- /dev/null
+++ b/gdb/testsuite/gdb.base/macscp1.c
@@ -0,0 +1,80 @@
+#include <stdio.h>
+
+#define SPLICE(a, b) INNER_SPLICE(a, b)
+#define INNER_SPLICE(a, b) a ## b
+#define STRINGIFY(a) INNER_STRINGIFY(a)
+#define INNER_STRINGIFY(a) #a
+
+/* A macro named UNTIL_<func> is #defined until just before the
+ definition of the function <func>.
+
+ A macro named BEFORE_<func> is not #defined until just before the
+ definition of <func>.
+
+ The macro WHERE is redefined before each function <func> to the
+ token list ``before <func>''.
+
+ The macscp IN_MACSCP2_H and IN_MACSCP3_H are defined while
+ processing those header files; macscp4.h uses them to choose
+ appropriate function names, output strings, and macro definitions. */
+
+#define UNTIL_MACSCP1_1
+#define UNTIL_MACSCP2_1
+#define UNTIL_MACSCP4_1_FROM_MACSCP2
+#define UNTIL_MACSCP4_2_FROM_MACSCP2
+#define UNTIL_MACSCP2_2
+#define UNTIL_MACSCP1_2
+#define UNTIL_MACSCP3_1
+#define UNTIL_MACSCP4_1_FROM_MACSCP3
+#define UNTIL_MACSCP4_2_FROM_MACSCP3
+#define UNTIL_MACSCP3_2
+#define UNTIL_MACSCP1_3
+
+#define WHERE before macscp1_1
+#define BEFORE_MACSCP1_1
+#undef UNTIL_MACSCP1_1
+void
+macscp1_1 ()
+{
+ puts ("macscp1_1");
+}
+
+#include "macscp2.h"
+
+#undef WHERE
+#define WHERE before macscp1_2
+#define BEFORE_MACSCP1_2
+#undef UNTIL_MACSCP1_2
+void
+macscp1_2 ()
+{
+ puts ("macscp1_2");
+}
+
+#include "macscp3.h"
+
+#undef WHERE
+#define WHERE before macscp1_3
+#define BEFORE_MACSCP1_3
+#undef UNTIL_MACSCP1_3
+void
+macscp1_3 ()
+{
+ puts ("macscp1_3");
+}
+
+int
+main (int argc, char **argv)
+{
+ macscp1_1 ();
+ macscp2_1 ();
+ macscp4_1_from_macscp2 ();
+ macscp4_2_from_macscp2 ();
+ macscp2_2 ();
+ macscp1_2 ();
+ macscp3_1 ();
+ macscp4_1_from_macscp3 ();
+ macscp4_2_from_macscp3 ();
+ macscp3_2 ();
+ macscp1_3 ();
+}