]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gdb/testsuite/gdb.cp/pr17494.cc
Fix evaluation of method calls under EVAL_SKIP.
[thirdparty/binutils-gdb.git] / gdb / testsuite / gdb.cp / pr17494.cc
1 /* This testcase is part of GDB, the GNU debugger.
2
3 Copyright 2014 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
19 /* One could use unique_ptr instead, but that requires a GCC which can
20 support "-std=c++11". */
21
22 int
23 func (int i, int j)
24 {
25 return i + j;
26 }
27
28 class A
29 {
30 public:
31 A () { a = 12345; f = &func; }
32 int geta ();
33 int adda (int i);
34
35 int a;
36 int (*f) (int, int);
37 };
38
39 int
40 A::geta ()
41 {
42 return a;
43 }
44
45 int
46 A::adda (int i)
47 {
48 return a + i;
49 }
50
51 int
52 main ()
53 {
54 A a;
55 A *a_ptr = &a;
56 int (A::*m1) ();
57 int (A::*m2) (int);
58
59 m1 = &A::geta;
60 m2 = &A::adda;
61
62 return (a.*m1) () + (a.*m2) (12) + (a.*(&A::f)) (1, 2); /* Break here */
63 }