* gdb.base/call-signal-resume.exp, gdb.base/unwindonsignal.exp: Skip
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.base / macscp1.c
1 #include <stdio.h>
2
3 #define SPLICE(a, b) INNER_SPLICE(a, b)
4 #define INNER_SPLICE(a, b) a ## b
5 #define STRINGIFY(a) INNER_STRINGIFY(a)
6 #define INNER_STRINGIFY(a) #a
7
8 #define FIFTY_SEVEN 57
9
10 #define FORTY_EIGHT 48
11 #undef FORTY_EIGHT
12
13 struct outer
14 {
15 struct fields
16 {
17 struct fault
18 {
19 int addr;
20 } fault;
21 } fields;
22 };
23 struct outer address;
24
25 #define addr fields.fault.addr
26
27 /* A macro named UNTIL_<func> is #defined until just before the
28 definition of the function <func>.
29
30 A macro named BEFORE_<func> is not #defined until just before the
31 definition of <func>.
32
33 The macro WHERE is redefined before each function <func> to the
34 token list ``before <func>''.
35
36 The macscp IN_MACSCP2_H and IN_MACSCP3_H are defined while
37 processing those header files; macscp4.h uses them to choose
38 appropriate function names, output strings, and macro definitions. */
39
40 #define UNTIL_MACSCP1_1
41 #define UNTIL_MACSCP2_1
42 #define UNTIL_MACSCP4_1_FROM_MACSCP2
43 #define UNTIL_MACSCP4_2_FROM_MACSCP2
44 #define UNTIL_MACSCP2_2
45 #define UNTIL_MACSCP1_2
46 #define UNTIL_MACSCP3_1
47 #define UNTIL_MACSCP4_1_FROM_MACSCP3
48 #define UNTIL_MACSCP4_2_FROM_MACSCP3
49 #define UNTIL_MACSCP3_2
50 #define UNTIL_MACSCP1_3
51
52 #define WHERE before macscp1_1
53 #define BEFORE_MACSCP1_1
54 #undef UNTIL_MACSCP1_1
55 void
56 macscp1_1 ()
57 {
58 puts ("macscp1_1");
59 }
60
61 #include "macscp2.h"
62
63 #undef WHERE
64 #define WHERE before macscp1_2
65 #define BEFORE_MACSCP1_2
66 #undef UNTIL_MACSCP1_2
67 void
68 macscp1_2 ()
69 {
70 puts ("macscp1_2");
71 }
72
73 #include "macscp3.h"
74
75 #undef WHERE
76 #define WHERE before macscp1_3
77 #define BEFORE_MACSCP1_3
78 #undef UNTIL_MACSCP1_3
79 void
80 macscp1_3 ()
81 {
82 puts ("macscp1_3");
83 }
84
85 void
86 macscp_expr (void)
87 {
88 int foo = -1;
89
90 foo = 0; /* set breakpoint here */
91 #define MACRO_TO_EXPAND foo
92 foo = 1;
93 #undef MACRO_TO_EXPAND
94 foo = 2;
95 }
96
97 #define TWENTY_THREE 23
98
99 int
100 main (int argc, char **argv)
101 {
102 macscp1_1 ();
103 macscp2_1 ();
104 macscp4_1_from_macscp2 ();
105 macscp4_2_from_macscp2 ();
106 macscp2_2 ();
107 macscp1_2 ();
108 macscp3_1 ();
109 macscp4_1_from_macscp3 ();
110 macscp4_2_from_macscp3 ();
111 macscp3_2 ();
112 macscp1_3 ();
113 macscp_expr ();
114 }
This page took 0.038023 seconds and 4 git commands to generate.