1 /* This testcase is part of GDB, the GNU debugger. 2 3 Copyright 2003-2019 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 81