| /* This testcase is part of GDB, the GNU debugger. |
| |
| Copyright 2011-2021 Free Software Foundation, Inc. |
| |
| This program is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by |
| the Free Software Foundation; either version 3 of the License, or |
| (at your option) any later version. |
| |
| This program is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU General Public License for more details. |
| |
| You should have received a copy of the GNU General Public License |
| along with this program. If not, see <http://www.gnu.org/licenses/>. |
| |
| Contributed by Red Hat, originally written by Keith Seitz. */ |
| |
| #include <stdlib.h> |
| |
| namespace |
| { |
| void doit1 (void) { } // doit1(void) |
| void doit1 (int a) { } // doit1(int) |
| void doit1 (char *a) { } // doit1(char *) |
| |
| class one |
| { |
| public: |
| one (void) { } // one::one(void) |
| one (int a) { } // one::one(int) |
| one (char *a) { } // one::one(char *) |
| static void doit (void) { } // one::doit(void) |
| }; |
| |
| namespace A |
| { |
| void doit2 (void) { } // A::doit2(void) |
| void doit2 (int a) { } // A::doit2(int) |
| void doit2 (char *a) { } // A::doit2(char *) |
| |
| class two |
| { |
| public: |
| two (void) { } // A::two::two(void) |
| two (int a) { } // A::two::two(int) |
| two (char *a) { } // A::two::two(char *) |
| static void doit (void) { } // A::two::doit(void) |
| }; |
| |
| namespace |
| { |
| namespace |
| { |
| void doit3 (void) { } // A::doit3(void) |
| void doit3 (int a) { } // A::doit3(int) |
| void doit3 (char *a) { } // A::doit3(char *) |
| |
| class three |
| { |
| public: |
| three (void) { } // A::three::three(void) |
| three (int a) { } // A::three::three(int) |
| three (char *a) { } // A::three::three(char *) |
| static void doit (void) { } // A::three::doit(void) |
| }; |
| } |
| } |
| } |
| } |
| |
| void |
| doit (void) |
| { |
| one a, b (3), c (static_cast<char *> (NULL)); |
| one::doit (); |
| A::two d, e (3), f (static_cast<char *> (NULL)); |
| A::two::doit (); |
| A::three g, h (3), i (static_cast<char *> (NULL)); |
| A::three::doit (); |
| doit1 (); |
| doit1 (3); |
| doit1 (static_cast<char *> (NULL)); |
| A::doit2 (); |
| A::doit2 (3); |
| A::doit2 (static_cast<char *> (NULL)); |
| A::doit3 (); |
| A::doit3 (3); |
| A::doit3 (static_cast<char *> (NULL)); |
| } |