diff options
author | Doug Evans <dje@google.com> | 2014-12-02 16:40:38 -0800 |
---|---|---|
committer | Doug Evans <dje@google.com> | 2014-12-02 16:40:38 -0800 |
commit | 29f0c3b7b2b4fb46dd5ad29c72ae41a565f5ac60 (patch) | |
tree | e662757950de0395148f81d793eaecd1f6640cbd /gdb/testsuite/gdb.cp/anon-ns2.cc | |
parent | 72998fb37a6a4bc684ba86228e81f27c7a7609ca (diff) | |
download | binutils-29f0c3b7b2b4fb46dd5ad29c72ae41a565f5ac60.zip binutils-29f0c3b7b2b4fb46dd5ad29c72ae41a565f5ac60.tar.gz binutils-29f0c3b7b2b4fb46dd5ad29c72ae41a565f5ac60.tar.bz2 |
PR symtab/17602
gdb/ChangeLog:
PR symtab/17602
* linespec.c (iterate_name_matcher): Fix arguments to symbol_name_cmp.
gdb/testsuite/ChangeLog:
PR symtab/17602
* gdb.cp/anon-ns.cc: Move guts of this file to ...
* gdb.cp/anon-ns-2.cc: ... here. New file.
* gdb.cp/anon-ns.exp: Update.
Diffstat (limited to 'gdb/testsuite/gdb.cp/anon-ns2.cc')
-rw-r--r-- | gdb/testsuite/gdb.cp/anon-ns2.cc | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.cp/anon-ns2.cc b/gdb/testsuite/gdb.cp/anon-ns2.cc new file mode 100644 index 0000000..0d29d9f --- /dev/null +++ b/gdb/testsuite/gdb.cp/anon-ns2.cc @@ -0,0 +1,91 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2011-2014 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)); +} |