1/* Copyright 2015-2023 Free Software Foundation, Inc.
2
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.
7
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.
12
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/>.  */
15
16namespace {
17  static enum {ABC = 1, DEF, GHI, JKL} anon_e = GHI;
18  static union
19  {
20    char aa;
21    int bb;
22    float ff;
23    double dd;
24    void *pp;
25  } anon_u = { 'a' };
26
27  static struct
28  {
29    char *ptr;
30    int len;
31    struct
32    {
33      unsigned MAGIC;
34    };
35    union
36    {
37      int ua;
38      char *ub;
39    };
40  } anon_s = {"abracadabra", 11, 0xdead, 0xbeef};
41
42  struct A
43  {
44    A () : e (AA)
45    {
46      this->u.b = 0;
47      this->s.ptr = "hello";
48      this->s.len = 5;
49    }
50
51    enum {AA = 10, BB, CC, DD} e;
52    union
53    {
54      char a;
55      int b;
56      float f;
57      double d;
58      void *p;
59    } u;
60    struct
61    {
62      char *ptr;
63      int len;
64    } s;
65  };
66};
67
68int
69main ()
70{
71  A a;
72  int var = 1234;
73
74  return a.u.b + a.s.len + static_cast<int> (a.e)
75    + static_cast<int> (anon_e) + anon_u.bb + anon_s.len; // break here
76}
77