]>
git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gdb/testsuite/gdb.compile/compile-cplus-method.cc
1 /* Copyright 2015-2020 Free Software Foundation, Inc.
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 3 of the License, or
6 (at your option) any later version.
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
13 You should have received a copy of the GNU General Public License
14 along with this program. If not, see <http://www.gnu.org/licenses/>. */
17 static int get_value (const A
* a
);
25 ATYPE
get_var () { return a_
; }
26 ATYPE
get_var (unsigned long a
) { return 100; }
27 ATYPE
get_var (ATYPE a
) { return 101; }
28 ATYPE
get_var (float a
) { return 102; }
29 ATYPE
get_var (void *a
) { return 103;}
30 ATYPE
get_var (A
& lr
) { return 104; }
31 ATYPE
get_var (A
const& lr
) { return 105; }
33 ATYPE
get_var1 (int n
) { return a_
<< n
; }
34 ATYPE
get_var2 (int incr
, unsigned n
) { return (a_
+ incr
) << n
; }
36 static ATYPE
get_1 (int a
) { return a
+ 1; }
37 static ATYPE
get_2 (int a
, int b
) { return a
+ b
+ 2; }
39 friend ATYPE
get_value (const A
*);
46 get_value (A::ATYPE a
)
52 get_value (const A
* a
)
63 typedef int (A::*PMF
) (A::ATYPE
);
71 unsigned long ul
= 0xdeadbeef;
74 PMF pmf
= &A::get_var
;
77 var
-= a
->get_var (); // break here
78 var
-= a
->get_var (1);
79 var
-= a
->get_var (ul
);
80 var
-= a
->get_var (f
);
81 var
-= a
->get_var (a
);
82 var
-= a
->get_var (*a
);
83 var
-= a
->get_var (*ac
);
84 var
-= a
->get_var1 (1);
85 var
-= a
->get_var2 (1, 2);
87 var
-= (a
->**pmf_p
) (1);
89 return var
- A::get_1 (1) + A::get_2 (1, 2) + get_value ()
90 + get_value (get_value ()) + get_value (a
);