]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gdb/testsuite/gdb.cp/namespace.cc
*** empty log message ***
[thirdparty/binutils-gdb.git] / gdb / testsuite / gdb.cp / namespace.cc
1 namespace AAA {
2 char c;
3 int i;
4 int A_xyzq (int);
5 char xyzq (char);
6 class inA {
7 public:
8 int xx;
9 int fum (int);
10 };
11 };
12
13 int AAA::inA::fum (int i)
14 {
15 return 10 + i;
16 }
17
18 namespace BBB {
19 char c;
20 int i;
21 int B_xyzq (int);
22 char xyzq (char);
23
24 namespace CCC {
25 char xyzq (char);
26 };
27
28 class Class {
29 public:
30 char xyzq (char);
31 int dummy;
32 };
33 };
34
35 int AAA::A_xyzq (int x)
36 {
37 return 2 * x;
38 }
39
40 char AAA::xyzq (char c)
41 {
42 return 'a';
43 }
44
45
46 int BBB::B_xyzq (int x)
47 {
48 return 3 * x;
49 }
50
51 char BBB::xyzq (char c)
52 {
53 return 'b';
54 }
55
56 char BBB::CCC::xyzq (char c)
57 {
58 return 'z';
59 }
60
61 char BBB::Class::xyzq (char c)
62 {
63 return 'o';
64 }
65
66 void marker1(void)
67 {
68 return;
69 }
70
71 namespace
72 {
73 int X = 9;
74
75 namespace G
76 {
77 int Xg = 10;
78 }
79 }
80
81 namespace C
82 {
83 int c = 1;
84 int shadow = 12;
85
86 namespace
87 {
88 int cX = 6;
89
90 namespace F
91 {
92 int cXf = 7;
93 }
94 }
95
96 namespace C
97 {
98 int cc = 2;
99 }
100
101 namespace D
102 {
103 int cd = 3;
104 int shadow = 13;
105
106 namespace E
107 {
108 int cde = 5;
109 }
110
111 void marker2 (void)
112 {
113 // NOTE: carlton/2003-04-23: I'm listing the expressions that I
114 // plan to have GDB try to print out, just to make sure that the
115 // compiler and I agree which ones should be legal! It's easy
116 // to screw up when testing the boundaries of namespace stuff.
117 c;
118 //cc;
119 C::cc;
120 cd;
121 E::cde;
122 shadow;
123 cX;
124 F::cXf;
125 X;
126 G::Xg;
127 //cXOtherFile;
128 //XOtherFile;
129
130 return;
131 }
132
133 }
134 }
135
136 int main ()
137 {
138 using AAA::inA;
139 char c1;
140
141 using namespace BBB;
142
143 c1 = xyzq ('x');
144 c1 = AAA::xyzq ('x');
145 c1 = BBB::CCC::xyzq ('m');
146
147 inA ina;
148
149 ina.xx = 33;
150
151 int y;
152
153 y = AAA::A_xyzq (33);
154 y += B_xyzq (44);
155
156 BBB::Class cl;
157
158 c1 = cl.xyzq('e');
159
160 marker1();
161
162 C::D::marker2 ();
163 }