mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-27 04:52:05 +08:00
3666a04883
This commits the result of running gdb/copyright.py as per our Start of New Year procedure... gdb/ChangeLog Update copyright year range in copyright header of all GDB files.
84 lines
1.8 KiB
C++
84 lines
1.8 KiB
C++
/* Copyright 2015-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/>. */
|
|
|
|
class A;
|
|
static int get_values (const A& a);
|
|
|
|
enum myenum {E_A = 10, E_B, E_C, E_D, E_E};
|
|
|
|
namespace N {
|
|
typedef enum {NA = 20, NB, NC, ND} ANON_NE;
|
|
}
|
|
|
|
namespace {
|
|
typedef enum {AA = 40, AB, AC, AD} ANON_E;
|
|
}
|
|
|
|
ANON_E g_e = AC;
|
|
|
|
class A
|
|
{
|
|
public:
|
|
typedef int ATYPE;
|
|
|
|
A () : public_ (1), protected_ (N::NB), private_ (3) {}
|
|
ATYPE public_;
|
|
static const myenum s_public_;
|
|
friend ATYPE get_values (const A&);
|
|
|
|
protected:
|
|
N::ANON_NE protected_;
|
|
static N::ANON_NE s_protected_;
|
|
|
|
private:
|
|
ATYPE private_;
|
|
static myenum s_private_;
|
|
};
|
|
|
|
const myenum A::s_public_ = E_A;
|
|
N::ANON_NE A::s_protected_ = N::NA;
|
|
myenum A::s_private_ = E_C;
|
|
|
|
static A::ATYPE
|
|
get_values (const A& a)
|
|
{
|
|
A::ATYPE val;
|
|
|
|
val = a.public_ + a.private_; // 1 + 3
|
|
if (a.protected_ == N::NB) // + 21
|
|
val += 21;
|
|
if (a.s_public_ == E_A) // +10
|
|
val += 10;
|
|
if (a.s_protected_ == N::NA) // +20
|
|
val += 20;
|
|
if (a.s_private_ == E_C) // +30
|
|
val += 30;
|
|
if (g_e == AC) // +40
|
|
val += 40;
|
|
return val; // = 125
|
|
}
|
|
|
|
typedef int A::*PMI;
|
|
|
|
int
|
|
main ()
|
|
{
|
|
A a;
|
|
int var = 1234;
|
|
PMI pmi = &A::public_;
|
|
|
|
return a.*pmi + get_values (a); // break here
|
|
}
|