Imported Upstream version 7.9
[platform/upstream/gdb.git] / gdb / testsuite / gdb.cp / baseenum.cc
1 /* This testcase is part of GDB, the GNU debugger.
2
3    Copyright 2003-2015 Free Software Foundation, Inc.
4
5    This program is free software; you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published by
7    the Free Software Foundation; either version 3 of the License, or
8    (at your option) any later version.
9
10    This program is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13    GNU General Public License for more details.
14
15    You should have received a copy of the GNU General Public License
16    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
17
18 class A
19 {
20 public:
21   enum E {X,Y,Z};
22 };
23
24 class B1 : public A
25 {
26 };
27
28 class B2 : public A
29 {
30 };
31
32 class C : public B1, public B2
33 {
34 public:
35   void test(E e);
36 };
37
38 void C::test(E e)
39 {
40   if (e == X)  // breakpoint 1
41     {
42     }
43 }
44
45 namespace N
46 {
47   class A
48   {
49   public:
50     enum E {X, Y, Z};
51   };
52
53   class B1 {};
54   class B2 : public A {};
55
56   class C : public B1, public B2
57   {
58   public:
59     void test (E e);
60   };
61
62   void
63   C::test (E e)
64   {
65     if (e == X) // breakpoint 2
66       {
67       }
68   }
69 }
70
71 int main()
72 {
73   C c;
74   c.test(A::X);
75
76   N::C nc;
77   nc.test (N::A::X);
78   return 0;
79 }
80