From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id B21C23858D33 for ; Fri, 31 Mar 2023 12:29:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B21C23858D33 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=ibm.com Received: from pps.filterd (m0127361.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 32VBgSoJ036319; Fri, 31 Mar 2023 12:29:16 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : date : message-id : references : in-reply-to : content-type : mime-version : subject; s=pp1; bh=E8N8H0KqmN5LDOBa/aSKxdBvv3fWtdUgc0DqMa9Jsr0=; b=DsEcW3xSjew/BxF9+16LNLdCozxNHE7nOsCeSqXm+DxVEg0Agbejd9HZdyF0IAsbKrRx fK+h9irH9JD/va08Dzvlx5+iBxknw5GF/jPe0dbm/PpqnmOhUOabZrZ3mtnbUCqVmYIJ g7A2UnHs/VtcVZjRpfMtDX1l/E9XtXYH058ZGonhuG0IQO7PgYLNBu9OrniGaJY84fTH XtAWAgFLKQi9IopZo42sgvZtqxsv8jGfU6jTlHs7q9ePPtBQ8va67a/RGaX4GE/rFw+M 091eTaMJa4LgyGGRmSlwsKZBdxbGakz2wECpH+q7Ijs6UtfQ2xrB8Y8u8oGcLCVodTE+ hQ== Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2043.outbound.protection.outlook.com [104.47.56.43]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3pnwahuky3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 31 Mar 2023 12:29:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mMbqscOxQZXMBRmcYoM1gAlajpM0gGeo3VeHEpmnJ7PeIydb/iSseHMp2+CY6oRb4NgjpvVn7EGsr1NJqeaZY9sYqtr/UXx7CXxEEdE30ZlU5dXp3SSBXZWFJ6Jthcp+ueQki0XHzeIKgzoJIBrhw8MZ9miKUiTdyOjelVb8CDwTrQITSQSs47kWF4WvmvhJjQB/l8ErIOczHS6ICsc16ygNgE/W2hSzRdJ2Iks3YmxRBh4Wy4mQysNPuw2PBdTnWZaeapVOvxzuwguSnThF/N563+RLc+GY/8+/abx7CIrQi0bmEIkM6vv5Vo1pZcm+jzaNNPiQgK+1m6N+PzcAbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=E8N8H0KqmN5LDOBa/aSKxdBvv3fWtdUgc0DqMa9Jsr0=; b=ORYFp4cAZwXNCiIsfaFm6lUiydrpmcTKSneoSREE701ixcGQwExohBS6XVRSl426vsmI1M+BKVJripXA/nc2S13xrQ+gPzIMMBnIoDGsOyBXu3ViomaQvBJB94fyIhYdRtHIlSMwfUGkCpPXX1kxxZOTVpW8oE0XaMCJBen5kxIw54YA/gsnmkNYdd3hTQN+UqRcxlHKlf0nYM7lXN2a63s6cgz+bwhoOBlEVsUWIJoJSWML/rfBWZQ4gHb8DM76+QOEWd0e94ojOLzVSA0ZfPj5iyae/kHXIZcAaQkx/HnnS/QGuII+H2uKfYl3t+nPQ+AzW47n+rqZz7oUy3V3pA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ibm.com; dmarc=pass action=none header.from=ibm.com; dkim=pass header.d=ibm.com; arc=none Received: from CH2PR15MB3544.namprd15.prod.outlook.com (2603:10b6:610:5::26) by IA1PR15MB6290.namprd15.prod.outlook.com (2603:10b6:208:444::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6222.30; Fri, 31 Mar 2023 12:29:13 +0000 Received: from CH2PR15MB3544.namprd15.prod.outlook.com ([fe80::fc4b:b8cb:1472:d50a]) by CH2PR15MB3544.namprd15.prod.outlook.com ([fe80::fc4b:b8cb:1472:d50a%6]) with mapi id 15.20.6254.022; Fri, 31 Mar 2023 12:29:13 +0000 From: Aditya Kamath1 To: Pedro Alves , Ulrich Weigand , "gdb-patches@sourceware.org" , "tom@tromey.com" CC: Sangamesh Mallayya , "simon.marchi@efficios.com" Thread-Topic: [EXTERNAL] Re: [PATCH] Modify align-c/align-c++ test case for AIX Thread-Index: AQHZXAEQQ9maDMU2LkakAv3jr+hZe68Rm2+FgAAzigCAAww/+Q== Date: Fri, 31 Mar 2023 12:29:12 +0000 Message-ID: References: <87edpwmzpz.fsf@tromey.com> <3636157c35660e96f2da98eb70cbac597d0a092c.camel@de.ibm.com> <87r0tqchea.fsf@tromey.com> <87zg8bave2.fsf@tromey.com> <61289f79c8c08ebe15112711954e1b05d49c92be.camel@de.ibm.com> <877cvagpeh.fsf@tromey.com> <82c24017291c399d58fc87d7ae7fc1b17c665295.camel@de.ibm.com> In-Reply-To: Accept-Language: en-IN, en-US Content-Language: en-IN X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH2PR15MB3544:EE_|IA1PR15MB6290:EE_ x-ms-office365-filtering-correlation-id: 0ad96e6e-26c5-4148-c66c-08db31e3890c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: BgNYOB4PGSfTj+3QvZY4wSOTf5FsOzveO0OGYg8JHI7Xbb4VuxQsOXrazqKBdfSeRLYjlcDBBG+66uGC7IA/U06fYE0iGDeRjJ4Cb+kCArvbzZjeZwSs9dG5jq3FSHqcpb8EpVVO5Ior5p05rFe8oHb2HP5madS+ETIIDc4tPh+xdNvAeRzVtfk47c/oIa0L4JJKDdbpNLLsiXwMrcH5tSiOMwS7I4vVralvNgJxbZYbx9FR5Rel5HOsEvfyN73FYnRm5XamM8UnkuJRtCE98AJEbpWR5fRFEpOeI+PgB8Z4p5xQpCHdhF1NDscuZ8nCC8Cx6wZrVBrIWVQuqGI8ai4GCSeC/c+V9K4JJ3YaJBHdyb0VbD6OUEkpEAx7p1aDkDc2w2wBsk4guK0KqbtuvhB440VDH3An9Cumd+iEwF5ty7DZzGWYi89f0y2hViIWFlm2szU3IFcU77KAbCTfJKvIoO0t2medVyANG+xJVSi98H5MjZI10G9mT+KQb5r+aMeZpvboA+6vEN3Tz6scZBLHhr51e3c3uvqvIbGXi9Dx+eXcnHQgi6+wtf47UscOYzRPpco1fqmPGuiVVkL5MJZyfxsLT0xJloB34GWe3YU= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR15MB3544.namprd15.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(376002)(39860400002)(136003)(346002)(396003)(366004)(451199021)(4326008)(7696005)(71200400001)(55016003)(76116006)(91956017)(66476007)(316002)(64756008)(66946007)(66446008)(54906003)(8676002)(2906002)(66556008)(38100700002)(110136005)(478600001)(33656002)(53546011)(5660300002)(6506007)(38070700005)(83380400001)(9686003)(122000001)(86362001)(41300700001)(186003)(99936003)(84970400001)(52536014)(8936002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?1ipfXeyUpZL3s7pVqWwHZ2PGolIAYiPkWRSgRhyaqQq0HdV71KT5jbJwIc3f?= =?us-ascii?Q?yVtOkaQCsa2kcZOT0Iwd5MZE3FbjXTKYHVkPOq+tL8B+C5YBId0mC5Ak8c6Y?= =?us-ascii?Q?bWdRoSyu+egBzGefjbZnXfn/p8FC4gW6pYoULX9bIu5B0Ya/s97chMvXh1DE?= =?us-ascii?Q?vJ7KEmWm1D28MnGxA6Qmk/zNvsextgHfslnMGYdYRJNSwL8agnpaVfDAlk1q?= =?us-ascii?Q?xqFkPNkJBAav22S7XXX3e9LvRmmO9Z2Gesq+/LVQ2HJ9vPxyqf3Jrhvn4HXz?= =?us-ascii?Q?6gCl4j+FO/WZKBlRxkESSiNFGxmYw35TlZtMqueLrBrNP8ZKcyUo2VWfyqqW?= =?us-ascii?Q?Hg5WBc+BASHFTPNqOazkgxEWEY3DLlucVEEcu7kXhec3x9yNl8UCHL3IAmE+?= =?us-ascii?Q?TfLSmF2iCEZCelXcNwc27b2thC6NIkRAMqjWHeRz7H5LgsIwCyWN0YvyltaZ?= =?us-ascii?Q?mCh0y4tqOEh47SudhCO/rokFWyFA4BdnbZ5pSsCShAPtWlALUvMIUCVv0LKu?= =?us-ascii?Q?3StXpNSOkikwL/2xSgBDf3ZsF2lkHscLVyvz4Pn9niHM/y+BAm2vUhBznolg?= =?us-ascii?Q?PGlW+JegpeKLLZ6d191amKM0SRwwQ6eMTzVnjnqFJawlMK65s+m5AxEATMST?= =?us-ascii?Q?8w0nvKzDHQdy0+tT6eLfu1lWr2waugK/LUXX419am7sPqZzRo/WoE4eIYx1E?= =?us-ascii?Q?GlSKu1xhkms+4WeXrImpy406p6RqmEeHRL4ne16p6O1R5MhxM03qtWvxEQWA?= =?us-ascii?Q?8+zWUJdlHfLUpsczVTO2O8dcd2k0GbQbuY2UT8dWGKfcePzFeyMBPGlg6Dju?= =?us-ascii?Q?b3+kuflGD60Ydent83eZ7jcmtXxeD6iuQbWgkf7R6L+eNkrvDmQqfMpEHvyu?= =?us-ascii?Q?1GV6m/v4VNf4EYgWNb3aTsoRvf0f1sI1UKiKDXhZwNbLsH+1Xjnrv43szw8X?= =?us-ascii?Q?GrT6/o1fykTVxrMTpOrSSs98SSZ40jqdX1CFO3P5Ktwohm8pbpHDvOKf/mTn?= =?us-ascii?Q?7mnE1v3zSJWlgBNPJA2jp8iK8nfEmluf6Nx2ma57rbZALLup5UErth/24Ng2?= =?us-ascii?Q?EXOVqZqBzVstFCcrcTVqUlHDbRvyNX0Hk5QPAOxXNY5KwVFIR2UkW63CYJqs?= =?us-ascii?Q?pJ1GoKrAqaB8GkXibt5oFuDCLhlTWelAJqStUuhPNqGQG5cpmOJEyLeom7Zi?= =?us-ascii?Q?qQ/HGCeN4SNfJIJypAUrsqYYWgpXUsKzZze3FpSi1Ym60M+BNX4V3iuMe7C8?= =?us-ascii?Q?vAJThgflsoyTIwWrJrlz2Dwev7mqRKZvddzTLOby2uO09aZ7GIcbCaPjSqYi?= =?us-ascii?Q?r1LyD754X5UAVEHhpb6CNci6le2hR0gmf9Y9J91Bn4sp53DjRYTt2IHgjX+X?= =?us-ascii?Q?y/cF7zN74SV2DdiBoVQhHdypd3+JK0MxVUdUsrBhWMJo84s+MaCS9l2ttkgz?= =?us-ascii?Q?Z46YKsUMDF2KJA0u5vJ//ZPNQvnjDwZkBtr5Pz0D9PNsTzZ4//IigBTNv9Z/?= =?us-ascii?Q?K1g5y5BVAClkWUZJTsEbwFe+O+3tIhBIxAPtpRpzHnDdOTJk/3Tyn0ZSanAg?= =?us-ascii?Q?kyP74VLOnEEjGDQxMQrYu+ELcRyrVt/w/aFOsSvtbRZ+NmX+2zahudGJUAge?= =?us-ascii?Q?kryNCQTA2il4ghG1nJw+VKnjcjfUoeo4kS/YwzPu1ITmXz3Gpmr7IlkHEVYR?= =?us-ascii?Q?9QP4mw=3D=3D?= Content-Type: multipart/mixed; boundary="_004_CH2PR15MB354499DA93FEE4815E1DBFB3D68F9CH2PR15MB3544namp_" MIME-Version: 1.0 X-OriginatorOrg: ibm.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH2PR15MB3544.namprd15.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0ad96e6e-26c5-4148-c66c-08db31e3890c X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2023 12:29:12.9487 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: fcf67057-50c9-4ad4-98f3-ffca64add9e9 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: xV12wnQ0EmJxaFNTy3HDBCxW1pUsRoO+nskK5dxrDw/Hd+3almrqGCJlSk+nP3u4ARkNuoGFbw9rfKL5x2fFwg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR15MB6290 X-Proofpoint-ORIG-GUID: pPQ5EE38jov_wV0nfhxFp9VZrz_G0lZd X-Proofpoint-GUID: pPQ5EE38jov_wV0nfhxFp9VZrz_G0lZd Subject: RE: [PATCH] Modify align-c/align-c++ test case for AIX X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-31_06,2023-03-30_04,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 spamscore=0 bulkscore=0 clxscore=1015 lowpriorityscore=0 suspectscore=0 mlxlogscore=999 impostorscore=0 mlxscore=0 phishscore=0 priorityscore=1501 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303200000 definitions=main-2303310097 X-Spam-Status: No, score=-8.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,HTML_MESSAGE,KAM_LOTSOFHASH,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --_004_CH2PR15MB354499DA93FEE4815E1DBFB3D68F9CH2PR15MB3544namp_ Content-Type: multipart/alternative; boundary="_000_CH2PR15MB354499DA93FEE4815E1DBFB3D68F9CH2PR15MB3544namp_" --_000_CH2PR15MB354499DA93FEE4815E1DBFB3D68F9CH2PR15MB3544namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Pedro, Ulrich, Tom and community members, Thank you for your feedback. Please find attached the patch. {See: 0001-Mod= ify-align-c-align-c-test-case-for-AIX.patch} >Like below. Does this work for AIX? Hi Pedro and Respected community members. Kindly allow me to disagree with = you all for the patch diff that was pasted in the previous email reply thre= ad. Consider a smaller piece of the test case pasted #include using namespace std; struct align_pair_char_x_char {char one; char two;}; struct align_pair_char_x_char item_char_x_char; char align_pair_char_x_char::one =3D 0; unsigned a_char_x_char =3D alignof (struct align_pair_char_x_char); int main() { printf ("%d \n", a_char_x_char); } So the line highlighted in bold is a problem. This line is also there in th= e patch diff that was pasted in the previous email reply thread. This is n= ot allowed. We are trying to access something we should not. In case we wan= t to initialise any data member, we need to do it via a constructor. In AIX, I can see 'char align_pair_char_x_unsigned_char::one' is not a stat= ic data member of 'struct align_pair_char_x_unsigned_char' error I did not try in PowerPc Linux or another Linux machine. But from the littl= e knowledge I have, it should not work there as well. Someone needs to chec= k this in Linux. May be you or Ulrich or Tom can confirm this from your exp= erience in Linux. Let me know. In my patch I have these lines. if { $lang =3D=3D "c++" } { + puts $outfile "{ T one =3D 0; U two; }" puts -nonewline $outfile "#define DEF_WITH_1_STATIC(T,U) str= uct align_pair_static_ ## T ## _x_ ## U " puts $outfile "{ static T one; U two; }" puts -nonewline $outfile "#define DEF_WITH_2_STATIC(T,U) str= uct align_pair_static_ ## T ## _x_static_ ## U " puts $outfile "{ static T one; static U two; }" } if { $lang =3D=3D "c" } { + puts $outfile "{ T one; U two; }" If the aim is to initialise, then this will work in C++. In C we will get a= n error saying for doing one =3D 0, 1 | define DEF(T,U) struct align_pair_ ## T ## _x_ ## U { T one =3D 0; U tw= o; } | ^ /home/aditya/latest_gdb/binutils-gdb/gdb/testsuite/outputs/gdb.base/align-c= /align.c:52:1: note: in expansion of macro 'DEF' 52 | DEF (char, char); | ^~~ /home/aditya/latest_gdb/binutils-gdb/gdb/testsuite/outputs/gdb.base/align-c= /align.c:1:62: error: expected ':', ',', ';', '}' or '__attribute__' before= '=3D' token 1 | define DEF(T,U) struct align_pair_ ## T ## _x_ ## U { T one =3D 0; = U two; } So I made those changes for respective languages such that only in c++ we m= ake one =3D 0. The patch attached works perfectly. You might wonder how when we do not use= the struct variables. In AIX atleast, if we access one of the garbage or u= nused variable we are able to access everything else. Kindly consider the attached patch in this email, if it works in all other = targets as well. If not let me know. Have a nice day ahead. Test case numbers of AIX after applying this patch : align-c =3D 406 and al= ign-c++ =3D 1134 Test case numbers of AIX before applying this patch : align-c =3D 0 and ali= gn-c++ =3D 0 Output of the below code is 1. #include using namespace std; struct align_pair_char_x_char {char one =3D 0; char two;}; struct align_pair_char_x_char item_char_x_char; unsigned a_char_x_char =3D alignof (struct align_pair_char_x_char); int main() { printf ("%d \n", a_char_x_char); } Thanks and regards, Aditya. From: Pedro Alves Date: Wednesday, 29 March 2023 at 7:06 PM To: Aditya Kamath1 , Ulrich Weigand , gdb-patches@sourceware.org , tom@= tromey.com Cc: Sangamesh Mallayya , simon.marchi@efficios.= com Subject: [EXTERNAL] Re: [PATCH] Modify align-c/align-c++ test case for AIX On 2023-03-29 12:28 p.m., Aditya Kamath1 wrote: >>I'm wondering whether __attribute__((used)) on the global variable makes = any >>difference. IIRC with LLVM it prevents link-time stripping on Mach-O and= PE/COFF, >>but I don't know about XCOFF + GCC. (It doesn't on ELF, you >>need 'retain' for that.) > > Hi Pedro. So thanks for this suggestion. I learnt something new from you.= But this __attribute__((used)) did not make any difference in our environm= ent. Thanks for checking. I also recalled that Clang with LTO has a similar issue, and there __attrib= ute__((used)) tends to help. Seems to me that it's best to tweak the code generator to j= ust emit uses for all variables then, instead of special casing some platform or some spe= cific variable. Like below. Does this work for AIX? =46rom 576c9c77ff3ac297a58662471fd0a2546a1d5f42 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Wed, 29 Mar 2023 13:21:20 +0100 Subject: [PATCH] Fix gdb.base/align-*.exp and Clang + LTO and AIX GCC Clang with LTO (clang -flto) garbage collects unused global variables, Thus, gdb.base/align-c.exp and gdb.base/align-c++.exp fail with hundreds of FAILs like so: $ make check \ TESTS=3D"gdb.*/align-*.exp" \ RUNTESTFLAGS=3D"CC_FOR_TARGET=3D'clang -flto' CXX_FOR_TARGET=3D'clang++= -flto'" ... FAIL: gdb.base/align-c.exp: get integer valueof "a_char" FAIL: gdb.base/align-c.exp: print _Alignof(char) FAIL: gdb.base/align-c.exp: get integer valueof "a_char_x_char" FAIL: gdb.base/align-c.exp: print _Alignof(struct align_pair_char_x_char) FAIL: gdb.base/align-c.exp: get integer valueof "a_char_x_unsigned_char" ... AIX GCC has the same issue, and there the easier way of adding __attribute__((used)) to globals does not help. So add explicit uses of all globals to the generated code. For the C++ test, that reveals that the static variable members of the generated structs are not defined anywhere, leading to undefined references. Fixed by emitting initialization for all static members. Lastly, I noticed that CXX_FOR_TARGET was being ignored -- that's because the align-c++.exp testcase is compiling with the C compiler driver. Fixed by passing "c++" as option to prepare_for_testing. Change-Id: I874b717afde7b6fb1e45e526912b518a20a12716 --- gdb/testsuite/gdb.base/align.exp.tcl | 49 ++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/gdb/testsuite/gdb.base/align.exp.tcl b/gdb/testsuite/gdb.base/= align.exp.tcl index 6a75a14d887..550afe1c47d 100644 --- a/gdb/testsuite/gdb.base/align.exp.tcl +++ b/gdb/testsuite/gdb.base/align.exp.tcl @@ -94,12 +94,15 @@ proc prepare_test_source_file { lang } { puts $outfile "DEF_WITH_1_STATIC ($utype, $uinner);" set joined "static_${utype}_x_${uinner}" puts $outfile "struct align_pair_$joined item_${joined};" + puts $outfile "$utype align_pair_${joined}::one =3D 0;" puts $outfile "unsigned a_${joined}" puts $outfile " =3D ${align_func} (struct align_pair_${jo= ined});" puts $outfile "DEF_WITH_2_STATIC ($utype, $uinner);" set joined "static_${utype}_x_static_${uinner}" puts $outfile "struct align_pair_$joined item_${joined};" + puts $outfile "$utype align_pair_${joined}::one =3D 0;" + puts $outfile "$uinner align_pair_${joined}::two =3D 0;" puts $outfile "unsigned a_${joined}" puts $outfile " =3D ${align_func} (struct align_pair_${jo= ined});" } @@ -107,12 +110,53 @@ proc prepare_test_source_file { lang } { } # Epilogue. - puts $outfile { + puts $outfile " int main() { - return 0; + " + + # Clang with LTO garbage collects unused global variables, even at + # -O0. Likewise AIX GCC. Add uses to all global variables to + # prevent it. + + if { $lang =3D=3D "c" } { + puts $outfile "a_void++;" + } + + # First, add uses for single items. + foreach type $typelist { + set utype [join [split $type] _] + puts $outfile "item_$utype++;" + if { $lang =3D=3D "c" } { + puts $outfile "a_$utype++;" + } + } + + # Now add uses for all pairs. + foreach type $typelist { + set utype [join [split $type] _] + foreach inner $typelist { + set uinner [join [split $inner] _] + set joined "${utype}_x_${uinner}" + puts $outfile "item_${joined}.one++;" + puts $outfile "a_${joined}++;" + + if { $lang =3D=3D "c++" } { + set joined "static_${utype}_x_${uinner}" + puts $outfile "item_${joined}.one++;" + puts $outfile "a_${joined}++;" + + set joined "static_${utype}_x_static_${uinner}" + puts $outfile "item_${joined}.one++;" + puts $outfile "a_${joined}++;" + } } } + puts $outfile " + return 0; + } + " + close $outfile return $filename @@ -127,6 +171,7 @@ proc run_alignment_test { lang } { set flags {debug} if { "$lang" =3D=3D "c++" } { + lappend flags "c++" lappend flags "additional_flags=3D-std=3Dc++11" } standard_testfile $filename base-commit: b863b097ee7a79b1114b9dd386864bc3c23a51b0 -- 2.36.0 --_000_CH2PR15MB354499DA93FEE4815E1DBFB3D68F9CH2PR15MB3544namp_-- --_004_CH2PR15MB354499DA93FEE4815E1DBFB3D68F9CH2PR15MB3544namp_ Content-Type: application/octet-stream; name="0001-Modify-align-c-align-c-test-case-for-AIX.patch" Content-Description: 0001-Modify-align-c-align-c-test-case-for-AIX.patch Content-Disposition: attachment; filename="0001-Modify-align-c-align-c-test-case-for-AIX.patch"; size=2834; creation-date="Fri, 31 Mar 2023 12:26:54 GMT"; modification-date="Fri, 31 Mar 2023 12:26:54 GMT" Content-Transfer-Encoding: base64 RnJvbSA2MWUzNTkxZWNmYTc1MmZmYTI1Mjc4MjMwZWVlMmE4YzE4YjgzZjg2 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBZGl0eWEgVmlkeWFk aGFyIEthbWF0aCA8QWRpdHlhLkthbWF0aDFAaWJtLmNvbT4KRGF0ZTogRnJp LCAzMSBNYXIgMjAyMyAwNzowODoyMiAtMDUwMApTdWJqZWN0OiBbUEFUQ0hd IE1vZGlmeSBhbGlnbi1jL2FsaWduLWMrKyB0ZXN0IGNhc2UgZm9yIEFJWAoK T24gQUlYLCB0aGUgZGVidWdnZXIgY2Fubm90IGFjY2VzcyBnbG9iYWwgdmFy aWFibGVzIGJlZm9yZSB0aGV5CnRoZXkgYXJlIHVzZWQgaW4gYW55IGZ1bmN0 aW9uLiBIZW5jZSB3ZSBhZGQgdGhpcyBzbWFsbCBjaGFuZ2Ugc28KdGhhdCB3 ZSBjYW4gdGVzdCB0aGUgc2FtZSBpbiBBSVguCi0tLQogZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9hbGlnbi5leHAudGNsIHwgNDYgKysrKysrKysrKysrKysr KysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDQyIGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9hbGlnbi5leHAudGNsIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9hbGlnbi5leHAudGNsCmluZGV4IDZhNzVhMTRkODg3Li44MDFlZTE2 NDhjOSAxMDA2NDQKLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hbGln bi5leHAudGNsCisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYWxpZ24u ZXhwLnRjbApAQCAtNTUsMTQgKzU1LDE1IEBAIHByb2MgcHJlcGFyZV90ZXN0 X3NvdXJjZV9maWxlIHsgbGFuZyB9IHsKIAogICAgICMgUHJvbG9ndWUuCiAg ICAgcHV0cyAtbm9uZXdsaW5lICRvdXRmaWxlICIjZGVmaW5lIERFRihULFUp IHN0cnVjdCBhbGlnbl9wYWlyXyAjIyBUICMjIF94XyAjIyBVICIKLSAgICBw dXRzICRvdXRmaWxlICJ7IFQgb25lOyBVIHR3bzsgfSIKICAgICBpZiB7ICRs YW5nID09ICJjKysiIH0geworCXB1dHMgJG91dGZpbGUgInsgVCBvbmUgPSAw OyBVIHR3bzsgfSIKIAlwdXRzIC1ub25ld2xpbmUgJG91dGZpbGUgIiNkZWZp bmUgREVGX1dJVEhfMV9TVEFUSUMoVCxVKSBzdHJ1Y3QgYWxpZ25fcGFpcl9z dGF0aWNfICMjIFQgIyMgX3hfICMjIFUgIgogCXB1dHMgJG91dGZpbGUgInsg c3RhdGljIFQgb25lOyBVIHR3bzsgfSIKIAlwdXRzIC1ub25ld2xpbmUgJG91 dGZpbGUgIiNkZWZpbmUgREVGX1dJVEhfMl9TVEFUSUMoVCxVKSBzdHJ1Y3Qg YWxpZ25fcGFpcl9zdGF0aWNfICMjIFQgIyMgX3hfc3RhdGljXyAjIyBVICIK IAlwdXRzICRvdXRmaWxlICJ7IHN0YXRpYyBUIG9uZTsgc3RhdGljIFUgdHdv OyB9IgogICAgIH0KICAgICBpZiB7ICRsYW5nID09ICJjIiB9IHsKKwlwdXRz ICRvdXRmaWxlICJ7IFQgb25lOyBVIHR3bzsgfSIKIAlwdXRzICRvdXRmaWxl ICJ1bnNpZ25lZCBhX3ZvaWQgPSAke2FsaWduX2Z1bmN9ICh2b2lkKTsiCiAg ICAgfQogCkBAIC0xMDcsMTIgKzEwOCw0OCBAQCBwcm9jIHByZXBhcmVfdGVz dF9zb3VyY2VfZmlsZSB7IGxhbmcgfSB7CiAgICAgfQogCiAgICAgIyBFcGls b2d1ZS4KLSAgICBwdXRzICRvdXRmaWxlIHsKKyAgICBwdXRzICRvdXRmaWxl ICIKIAlpbnQgbWFpbigpIHsKLQkgICAgcmV0dXJuIDA7CisJIgorCSMgQ2xh bmcgd2l0aCBMVE8gZ2FyYmFnZSBjb2xsZWN0cyB1bnVzZWQgZ2xvYmFsIHZh cmlhYmxlcywgZXZlbiBhdAorCSMgLU8wLiAgTGlrZXdpc2UgQUlYIEdDQy4g IEFkZCB1c2VzIHRvIGFsbCBnbG9iYWwgdmFyaWFibGVzIHRvCisJIyBwcmV2 ZW50IGl0LgorCWlmIHsgJGxhbmcgPT0gImMiIH0geworCSAgcHV0cyAkb3V0 ZmlsZSAiYV92b2lkKys7IgorCX0KKworCSMgRmlyc3QsIGFkZCB1c2VzIGZv ciBzaW5nbGUgaXRlbXMuCisJZm9yZWFjaCB0eXBlICR0eXBlbGlzdCB7CisJ ICBzZXQgdXR5cGUgW2pvaW4gW3NwbGl0ICR0eXBlXSBfXQorCSAgcHV0cyAk b3V0ZmlsZSAiaXRlbV8kdXR5cGUrKzsiCisJICBpZiB7ICRsYW5nID09ICJj IiB9IHsKKwkgICAgcHV0cyAkb3V0ZmlsZSAiYV8kdXR5cGUrKzsiCisJICB9 CisJfQorCisJIyBOb3cgYWRkIHVzZXMgZm9yIGFsbCBwYWlycy4KKwlmb3Jl YWNoIHR5cGUgJHR5cGVsaXN0IHsKKwkgIHNldCB1dHlwZSBbam9pbiBbc3Bs aXQgJHR5cGVdIF9dCisJICBmb3JlYWNoIGlubmVyICR0eXBlbGlzdCB7CisJ ICAgIHNldCB1aW5uZXIgW2pvaW4gW3NwbGl0ICRpbm5lcl0gX10KKwkgICAg c2V0IGpvaW5lZCAiJHt1dHlwZX1feF8ke3Vpbm5lcn0iCisJICAgIHB1dHMg JG91dGZpbGUgImFfJHtqb2luZWR9Kys7IgorCSAgfQogCX0KLSAgICB9CiAK KwlpZiB7ICRsYW5nID09ICJjKysiIH0geworCSAgc2V0IGpvaW5lZCAic3Rh dGljXyR7dXR5cGV9X3hfJHt1aW5uZXJ9IgorCSAgcHV0cyAkb3V0ZmlsZSAi YV8ke2pvaW5lZH0rKzsiCisKKwkgIHNldCBqb2luZWQgInN0YXRpY18ke3V0 eXBlfV94X3N0YXRpY18ke3Vpbm5lcn0iCisJICBwdXRzICRvdXRmaWxlICJh XyR7am9pbmVkfSsrOyIKKwl9CisgICAgCisgICAgcHV0cyAkb3V0ZmlsZSAi CisgICAgICByZXR1cm4gMDsKKyAgICB9IAorICAgICIKKyAgICAKICAgICBj bG9zZSAkb3V0ZmlsZQogCiAgICAgcmV0dXJuICRmaWxlbmFtZQpAQCAtMTI3 LDYgKzE2NCw3IEBAIHByb2MgcnVuX2FsaWdubWVudF90ZXN0IHsgbGFuZyB9 IHsKIAogICAgIHNldCBmbGFncyB7ZGVidWd9CiAgICAgaWYgeyAiJGxhbmci ID09ICJjKysiIH0geworCWxhcHBlbmQgZmxhZ3MgImMrKyIKIAlsYXBwZW5k IGZsYWdzICJhZGRpdGlvbmFsX2ZsYWdzPS1zdGQ9YysrMTEiCiAgICAgfQog ICAgIHN0YW5kYXJkX3Rlc3RmaWxlICRmaWxlbmFtZQotLSAKMi4zOC4zCgo= --_004_CH2PR15MB354499DA93FEE4815E1DBFB3D68F9CH2PR15MB3544namp_--