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