xref: /openbsd-src/gnu/usr.bin/binutils/gdb/testsuite/gdb.base/macscp1.c (revision b725ae7711052a2233e31a66fefb8a752c388d7a)
1*b725ae77Skettenis #include <stdio.h>
2*b725ae77Skettenis 
3*b725ae77Skettenis #define SPLICE(a, b) INNER_SPLICE(a, b)
4*b725ae77Skettenis #define INNER_SPLICE(a, b) a ## b
5*b725ae77Skettenis #define STRINGIFY(a) INNER_STRINGIFY(a)
6*b725ae77Skettenis #define INNER_STRINGIFY(a) #a
7*b725ae77Skettenis 
8*b725ae77Skettenis /* A macro named UNTIL_<func> is #defined until just before the
9*b725ae77Skettenis    definition of the function <func>.
10*b725ae77Skettenis 
11*b725ae77Skettenis    A macro named BEFORE_<func> is not #defined until just before the
12*b725ae77Skettenis    definition of <func>.
13*b725ae77Skettenis 
14*b725ae77Skettenis    The macro WHERE is redefined before each function <func> to the
15*b725ae77Skettenis    token list ``before <func>''.
16*b725ae77Skettenis 
17*b725ae77Skettenis    The macscp IN_MACSCP2_H and IN_MACSCP3_H are defined while
18*b725ae77Skettenis    processing those header files; macscp4.h uses them to choose
19*b725ae77Skettenis    appropriate function names, output strings, and macro definitions.  */
20*b725ae77Skettenis 
21*b725ae77Skettenis #define UNTIL_MACSCP1_1
22*b725ae77Skettenis #define UNTIL_MACSCP2_1
23*b725ae77Skettenis #define UNTIL_MACSCP4_1_FROM_MACSCP2
24*b725ae77Skettenis #define UNTIL_MACSCP4_2_FROM_MACSCP2
25*b725ae77Skettenis #define UNTIL_MACSCP2_2
26*b725ae77Skettenis #define UNTIL_MACSCP1_2
27*b725ae77Skettenis #define UNTIL_MACSCP3_1
28*b725ae77Skettenis #define UNTIL_MACSCP4_1_FROM_MACSCP3
29*b725ae77Skettenis #define UNTIL_MACSCP4_2_FROM_MACSCP3
30*b725ae77Skettenis #define UNTIL_MACSCP3_2
31*b725ae77Skettenis #define UNTIL_MACSCP1_3
32*b725ae77Skettenis 
33*b725ae77Skettenis #define WHERE before macscp1_1
34*b725ae77Skettenis #define BEFORE_MACSCP1_1
35*b725ae77Skettenis #undef UNTIL_MACSCP1_1
36*b725ae77Skettenis void
macscp1_1()37*b725ae77Skettenis macscp1_1 ()
38*b725ae77Skettenis {
39*b725ae77Skettenis   puts ("macscp1_1");
40*b725ae77Skettenis }
41*b725ae77Skettenis 
42*b725ae77Skettenis #include "macscp2.h"
43*b725ae77Skettenis 
44*b725ae77Skettenis #undef WHERE
45*b725ae77Skettenis #define WHERE before macscp1_2
46*b725ae77Skettenis #define BEFORE_MACSCP1_2
47*b725ae77Skettenis #undef UNTIL_MACSCP1_2
48*b725ae77Skettenis void
macscp1_2()49*b725ae77Skettenis macscp1_2 ()
50*b725ae77Skettenis {
51*b725ae77Skettenis   puts ("macscp1_2");
52*b725ae77Skettenis }
53*b725ae77Skettenis 
54*b725ae77Skettenis #include "macscp3.h"
55*b725ae77Skettenis 
56*b725ae77Skettenis #undef WHERE
57*b725ae77Skettenis #define WHERE before macscp1_3
58*b725ae77Skettenis #define BEFORE_MACSCP1_3
59*b725ae77Skettenis #undef UNTIL_MACSCP1_3
60*b725ae77Skettenis void
macscp1_3()61*b725ae77Skettenis macscp1_3 ()
62*b725ae77Skettenis {
63*b725ae77Skettenis   puts ("macscp1_3");
64*b725ae77Skettenis }
65*b725ae77Skettenis 
66*b725ae77Skettenis int
main(int argc,char ** argv)67*b725ae77Skettenis main (int argc, char **argv)
68*b725ae77Skettenis {
69*b725ae77Skettenis   macscp1_1 ();
70*b725ae77Skettenis   macscp2_1 ();
71*b725ae77Skettenis   macscp4_1_from_macscp2 ();
72*b725ae77Skettenis   macscp4_2_from_macscp2 ();
73*b725ae77Skettenis   macscp2_2 ();
74*b725ae77Skettenis   macscp1_2 ();
75*b725ae77Skettenis   macscp3_1 ();
76*b725ae77Skettenis   macscp4_1_from_macscp3 ();
77*b725ae77Skettenis   macscp4_2_from_macscp3 ();
78*b725ae77Skettenis   macscp3_2 ();
79*b725ae77Skettenis   macscp1_3 ();
80*b725ae77Skettenis }
81