From patchwork Wed May 1 15:19:22 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qing Zhao X-Patchwork-Id: 1930254 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=oracle.com header.i=@oracle.com header.a=rsa-sha256 header.s=corp-2023-11-20 header.b=DO61K2iD; dkim=pass (1024-bit key; unprotected) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-oracle-onmicrosoft-com header.b=h8Eer8uE; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VV12y4sTbz1ydT for ; Thu, 2 May 2024 01:20:10 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B91BA3858429 for ; Wed, 1 May 2024 15:20:08 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id A8A67385ED7A for ; Wed, 1 May 2024 15:19:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A8A67385ED7A Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A8A67385ED7A Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1714576780; cv=pass; b=I4dkKlr7ZZq4KEtJ2Tsb/11vqmzsiAFdP2jBlv8Z0PVzoB7GbdBN9dgCvy7rcn99PVL0BgKo+PZ+nJRtNB0Rl8bBSyNKr2SiCtYFQW/1EhjsFtmoy5uNXszbRyIV4eDEMYhvG429U7rtp0rBvTEjhMF3XtcASedNT5n3KPqcYxM= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1714576780; c=relaxed/simple; bh=3n0wAyTGloE80TgxiCRQuCUuS6BtO+OZ24FVOGjSbDU=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-Id: MIME-Version; b=XLf8RgHnkRqJ5tPOMpwCHLiuT6I81uB1pxaPAjH3uMxYwrRotAZdRbZSWAmdIqz0nw/9mxCoHU0zlZooNFYzRS34RLOXdEJSSn/YV8NINa59mpu+Sq4zRriclbUFAUNhY5Mg5PXPlmQux+jW/v9a3Lh+/7HGg/rdVisJjyALQbM= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 441ARlg2024850; Wed, 1 May 2024 15:19:38 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=WrbDp6hZ5loKo2HutobE8RtDbCKPwtrDDXEQCCnzNx8=; b=DO61K2iDWlaPiiByYpE9WjEfZ3VBMhFrtHTMhUyEp2OQu/tz0tnJhE1TF2NtBnqqVm5R GfTNwhobVsx03+9zKyBvxJqHK94Li5ajPGTwdu7vgrOPWEByogDcLrYwXm30GzVEF2Yr zRE6GAM3r/ByqKHIlODhbdTVs1/F4loE6y7KJTf8dfnehljsoWrq0dnbINH2sOOvl6ab 1L6nVKqP0JTYnEA/NBeogAPWfnhfSnpnTic2zTa2grJZoXN+a88m01xZ8feZvepdiNAf AVB0PI80u2zE1TfHy60YF7hnhCqHImObal3eib7jBEH8QphnJM1F+b4g0+QzP4/ll5a1 QA== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3xrr54fds9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 01 May 2024 15:19:37 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 441FGlKn034625; Wed, 1 May 2024 15:19:36 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2168.outbound.protection.outlook.com [104.47.57.168]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3xu4c0q6fk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 01 May 2024 15:19:36 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Vp/sCUxQ2ZgIR0PJfh40x14gt+pZvlaWmAhGGfVmc5N/WthHfFnxT2vSISLL+o0eZnTnDwIv352LMSwTLbKIVwMhpFn8oOOUElmtZN1zbGcrzvtF9yrCWSo2EG35fHGbE6JNeItE/oktPU27DXbDHQ3xc7QZYsGh8OeD32Ds8zW7jQcuERRj4ctmf6vaZmK6gCP1KwCv81augoXEmoM0vn/kaqCdKUZuHCqUMYOdEwHmhL8ASHOeDCfiGLJP9kfBA6FQhXd4/ebxzTadaekxe/KK1IdfKVLOq6amCFqsEcNsCAKebrpv/tsd1L7i8JkWyGZ2jKIWPd5GjDys7SMNGg== 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=WrbDp6hZ5loKo2HutobE8RtDbCKPwtrDDXEQCCnzNx8=; b=DwNJIAdx6LuMpAEAIonitku9ZXLzAf+jriAwB5uy4YcTbkWgQLGxl87Iy4uQ7VTHROvNyFR3LNADdgA0uU1mQCGj+b9pf9UMeiblaU9ToZizNaWS7EdKEeDEj/fvIe8DHmgMF1K67zzukKGDDCE2D/Ue6WUBTksutl+HaYal1Npf7I89EBrtRLGCMmtqp/XEHzhmoib3eaj36yj5HJRn38CvpSIqSV1z6y4y5eKJQ/8ZDDYlqjKhOK04BpPUBCxwPCFdJv7ZxEqZN6ArB6CHsVUw4xLprtBWSXsXpjExmGo5vxYYNTsH9iRugHr21ecsNr59TwrW3T42SldyOIV/kQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WrbDp6hZ5loKo2HutobE8RtDbCKPwtrDDXEQCCnzNx8=; b=h8Eer8uELes1Fi96cDOnp60i8OdYvv5etAAEAQw0XNZw6rxsZzW34iJOgnaqKsYejmhDBnubkm0Do/HzjjrczTizlUkJ16M0B7VpsE8T2oEiHXW8E7YVUv0OB+TCBWjwiMRmGBlSmt3NU5Wieu0xTFVMyz5VwpnYijd3d6nBuTE= Received: from CY8PR10MB6538.namprd10.prod.outlook.com (2603:10b6:930:5a::17) by SA2PR10MB4794.namprd10.prod.outlook.com (2603:10b6:806:113::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.28; Wed, 1 May 2024 15:19:35 +0000 Received: from CY8PR10MB6538.namprd10.prod.outlook.com ([fe80::2dae:7852:9563:b4bc]) by CY8PR10MB6538.namprd10.prod.outlook.com ([fe80::2dae:7852:9563:b4bc%6]) with mapi id 15.20.7519.035; Wed, 1 May 2024 15:19:35 +0000 From: Qing Zhao To: jason@redhat.com, josmyers@redhat.com, richard.guenther@gmail.com, siddhesh@gotplt.org Cc: uecker@tugraz.at, keescook@chromium.org, gcc-patches@gcc.gnu.org, Qing Zhao Subject: [PATCH v4 3/4] Add testing cases for flexible array members in unions and alone in structures. Date: Wed, 1 May 2024 15:19:22 +0000 Message-Id: <20240501151923.2895074-4-qing.zhao@oracle.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20240501151923.2895074-1-qing.zhao@oracle.com> References: <20240501151923.2895074-1-qing.zhao@oracle.com> X-ClientProxiedBy: BL1PR13CA0267.namprd13.prod.outlook.com (2603:10b6:208:2ba::32) To CY8PR10MB6538.namprd10.prod.outlook.com (2603:10b6:930:5a::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY8PR10MB6538:EE_|SA2PR10MB4794:EE_ X-MS-Office365-Filtering-Correlation-Id: b91ab0ea-947f-413b-67bd-08dc69f21bc1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230031|1800799015|366007|376005; X-Microsoft-Antispam-Message-Info: FIkRcaNw37rV19zIYlnal1cJB0gYs5dbi3GWHabVkWBpxQJ89xIfxPbCn+AxVDyDnoJAgHiotmFEXl6HZuv5zpv7ra0QMGjbtYgFQr+ZmJFmQvNP3IHA+o0xJSMc9fHK5+f4MVesk3U4UEetUE/ebvG6Wh6Z3MI9FOq4TnsSu9nuWOxd9tf2c806mPa6SiVtb2OhONpvuM68nBBVH6j0jpZlE5u/Ejz6miv/q21oOg4eJyt/Ky8j2MY1sNrdcOeDI3ferzzUN7ukQvD4agLXeO+SRyNt8Iw+/jnpbd58HwG3ng13JrqMRAbxVohpesJHbFOA+fvL/9eZbofAnIkH7Y6JDf6sZQedvDuevxvmWI0KeJuRmNsuXcRw2lkPPDHBQcdveRj9XieBeKXVO58C5F2ObNAY7gnjerDuBuEIudELoMMf8Yjzt9cbZQVlwbivz3KZuhWWhjkKAxBbYykZ/EUdjKJy3vvhEGHk0LRyiKoJwvehuviu8m9aN2ud+7wKrMXoW90a/a5meWsXXZBxXMPypp4Uol42WV66//1dXLoVrca/6rW71bVyH7fjgWUqh3/YMeUG6QUmyWZbkJ4byHfXZr5tp9gVpapwfPdAEgj4TX1pCWeHxgACDY/vMCOcnRNe8yznxZGh+fxUC4r4vwa3zUsTDryVtsCuygDxMVrgB7fVCoa4fSNQizGcWr9AkcZm7aD6F96A0ZgzCItbLYdQGeyWO9U9GjS1KZW7IbD7yUeEJmZtNS/woQo+y7bikUd227/ZSfhs2xOodAR9+lHvro8dDf0cAFVDeXdlk/PPxK0RCP+PpS3dHkD9upMUvVEbysyrGL0RpVfy2N3n6p2mW4GAJvoGJ8xSqSaUZu26N9XIdkguhMqdlK03vMLluTHMvB7S/aYbFZKg9TVYoGo8Iq1NLdHXY20OXDYkD30ti6Ng/m7Mc5sU80bl7XAGiErrMqJcofffhBRTPhWJRbY1GBa16GFUFuEcg+2Uk2VmJbbKHEpoScxXwHwx6WYj+HttcqTI3ojGhXsMy8IphSIVU3mQNrf0xPmR3ZfnqwZvtKYt/mLOBljSiZk9ETGPsjLvnlPyUgSd3v46FcL8fPPAKh5/1Oucws/QfOtfMwXm/quDaEtwYv3P1oSxpwLaldWT6aG4LknIFVDhjtWy4yRBZ2PkeB0pLBMcuWFzKo3Tq28VDNMUH64ipqPriDvASjdXqq7Is6hcHI1STLzOd3ew8ATqMhzf3HK4ugNvvw/2jhOMUHNcm+uw81aFnLc+08BZyMNtM1P+OQdOhIFK+w== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CY8PR10MB6538.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(1800799015)(366007)(376005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: dwtFPlnwiTacsp0u9QvoYRueQStvEUrXfra/W+PWVpUuSgohjdfcOB44po2VH5wv2O+jbzzINxj+AGoDA0ecgCO7iFpVxAC//rdZQkI1g0fcxXYU5Pgz+ht+s4BgKFNfo49D+AvPdLDn2ur2TSbsxoGWOsbbK8RnqnCphq43gKN+iODKYQMYx0JQuTOncqrb6sueHvVj7wFPTFkVYcWGfF7ejJ+nreHdUpLSDyfZfv7ShhepoOGsQR0Bxkj1mTGwb1mgTd3m1UAc5CywfAxLbZP4SWbk6I70B5xI2UFH0wqZOWi6cHblolxxHKmuSiu95dmJlsEEySL5zisYqpqbfUncVDQsenGccI0LdNAOQYCYrHzG4y1dDSObfMnLn6oYbfX3CS70pu4Da3/JKPJzIzDOdnFStcKm9da0X7b+r1VZ+U64KKcSeI8Z2nZIFUTjEfgLR30JS7dG7Q9ap6+C8UHoQ8esyh+eMgzVZs4/WEsqIwgejOHeYubCvsT3fu6Rq9qH7JZecLQtvrQFEBSz9uhfM6lh51FcrpD5AaGLnLEDZlmULyhCk1DxHxvxAgCqEG4zPXcoVKpgKXIOUqWV4oVzfopXjrvtl1OoJ5CIdataGi/wiN/kKSQIT7YfmEEsbWEY0vprkfe7HX6gq1qKExxUfZpt6Bu8h8WFSPHs2g+s2GK1H7n0MmjP89sonGYmgUwr8GI9frGTmFE6gxIQ8EYngxTZqULOnNmmEOP8KuSJf22fq7UDOMLDsdf4+VoT+0+KYkuVLl26ma+zwMlnHQL+Vs7OwsE5zikVM70cc8/7uV7RNzXhhgtolr1X4z3cKGYt23JHcx6TpIaoehEYoUU5s1zxYwWQXk4MSJFeeVLfqujT10tQyDEuprmrRckx4LoIm4LLF1zu+7UTkH0QCD/LK4QUhPCYe2nlIgvWlxwet7ReF7EjZYhyLiwIuudqbVYZJsKg/sJFqu033tYNz0sCUPtXkPQsIwzFYoBosY16XJeQ77bWMwWKiDguYwwKYYsR3BAwozk6nTDGwD3mZlgbTWOLrweW0d76o/NPSgNgNF41bksyd1r4XFB24omSnCr44dgcXHQBVHFULlevaUaxurPUiXhNurxi5kYqh2LLipHQx12JewQp6ohh1zELaUh7UkIyR5aCoqL568X6EkR7gP3PSdCU71LBA5/T65X9XxmqYj7tQBSeXqRAv+nEvkbeaKFiMskTNGflc8KIjjdAahzsIJbBNFkoQX3/l42iafJruLiOPrlidMfPMVnySPRWnQDmwbIqSL/z+ZYma7n2QkZyNj+L66Q1inketh2ZeQjfmkY4tUE0g8OGcZu+matG9HfdjjdQW5GBy84AZI4rS5x1e7jlcYjKr3AJgHRnfoEy6+FIvZKZTrQTcvwpliatbFJKcvDoTMthjyZ4YWdOFfNZrfY0J6DScF70A5WQUi0on7Nh6Fan3zOi3zcdafOtos2asxBktDIa09ggw0GT/NYe/hSwQ/s0y6YVG5eLf9ekI5p5fmEXfC8qb/X6UfpHiEzU4NkAuh3jPFhWMhlBrSPzi7mHjHX0grp0S32diEmKZF85vkDxj/9cBENE X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: BC/H9mwdeGdr8nGLJpCX/lzyRBS9kuoSpvjGcpj2h0Fcg1IOSJzR7BhpKdjRKGDtQz8EpdocY8K/nrAuL0GP+BJeYqfU1IKnUagAroZyMgXmtAjcyK3vTLO5BC+TEGfyv4nu9mxn8gQiHYCiWZcd11Efve2RH+BZwN/o0pgyUym/ZFdWTy9M2byr/7ZEzuQZ6dLfCBv3w8YnzcwmcZYObEVK1m8YJiguHTtYYCLK6vCSYCOcJhEL+BkS0Sw56YTct3LNw+BT/CQqnJ5MI2zuIFnUxYrUVbzOPqm9qSLRLJhb8Tov6uoykzmPMhEhNsMeYGJUdKR8ofKfjSf8wtZitP0XgtU80z9WsboudQ9dcegAAB1RxsAmVWJ1AOUiMGMJ948y7StYGK0FC0T/1kVyNyyTbkbMi+B4/DcOzyDfhPahmHf55o3+Akwiu+VWUZD22W3stlP3maW9E2qk3EOqvp0qC4COBG0DMxSmBpbn5ou0mEKTPvUiHsP7oBofMKR0J77eu+bILXl+FTJ3rFOReYfBP8NTJSfkAkBDoWDc/JF+al8ntLnVmHgzA4/S55PcfdXq+zWJ1cDxnz/b8l4LSx/kSo0nwvWzMx++gsJWo6I= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b91ab0ea-947f-413b-67bd-08dc69f21bc1 X-MS-Exchange-CrossTenant-AuthSource: CY8PR10MB6538.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 May 2024 15:19:34.9740 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: oWee7K/tklH26T9pkt9rAYF08SzuHwDcHB6XcwteLD3Oz+OrE0AGOIaoVuS5MQZMTJaV834wUsTdotXGOEHtnw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4794 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1011,Hydra:6.0.650,FMLib:17.11.176.26 definitions=2024-05-01_15,2024-04-30_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 mlxlogscore=929 suspectscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2404010000 definitions=main-2405010108 X-Proofpoint-ORIG-GUID: 1m8mMivbhvOxxaZDjn_WAJy8zZu-n3px X-Proofpoint-GUID: 1m8mMivbhvOxxaZDjn_WAJy8zZu-n3px X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org gcc/testsuite/ChangeLog: * c-c++-common/fam-in-union-alone-in-struct-1.c: New testcase. * c-c++-common/fam-in-union-alone-in-struct-2.c: New testcase. * c-c++-common/fam-in-union-alone-in-struct-3.c: New testcase. --- .../fam-in-union-alone-in-struct-1.c | 52 +++++++++++++++++++ .../fam-in-union-alone-in-struct-2.c | 51 ++++++++++++++++++ .../fam-in-union-alone-in-struct-3.c | 36 +++++++++++++ 3 files changed, 139 insertions(+) create mode 100644 gcc/testsuite/c-c++-common/fam-in-union-alone-in-struct-1.c create mode 100644 gcc/testsuite/c-c++-common/fam-in-union-alone-in-struct-2.c create mode 100644 gcc/testsuite/c-c++-common/fam-in-union-alone-in-struct-3.c diff --git a/gcc/testsuite/c-c++-common/fam-in-union-alone-in-struct-1.c b/gcc/testsuite/c-c++-common/fam-in-union-alone-in-struct-1.c new file mode 100644 index 000000000000..7d4721aa95ac --- /dev/null +++ b/gcc/testsuite/c-c++-common/fam-in-union-alone-in-struct-1.c @@ -0,0 +1,52 @@ +/* testing the correct usage of flexible array members in unions + and alone in structures. */ +/* { dg-do run} */ +/* { dg-options "-Wpedantic" } */ + +union with_fam_1 { + int a; + int b[]; /* { dg-warning "flexible array member in union is a GCC extension" } */ +}; + +union with_fam_2 { + char a; + int b[]; /* { dg-warning "flexible array member in union is a GCC extension" } */ +}; + +union with_fam_3 { + char a[]; /* { dg-warning "flexible array member in union is a GCC extension" } */ + /* { dg-warning "in an otherwise empty" "" { target c++ } .-1 } */ + int b[]; /* { dg-warning "flexible array member in union is a GCC extension" } */ +}; + +struct only_fam { + int b[]; + /* { dg-warning "in a struct with no named members" "" { target c } .-1 } */ + /* { dg-warning "in an otherwise empty" "" { target c++ } .-2 } */ + /* { dg-warning "forbids flexible array member" "" { target c++ } .-3 } */ +}; + +struct only_fam_2 { + unsigned int : 2; + unsigned int : 3; + int b[]; + /* { dg-warning "in a struct with no named members" "" { target c } .-1 } */ + /* { dg-warning "in an otherwise empty" "" { target c++ } .-2 } */ + /* { dg-warning "forbids flexible array member" "" { target c++ } .-3 } */ +}; + +int main () +{ + if (sizeof (union with_fam_1) != sizeof (int)) + __builtin_abort (); + if (sizeof (union with_fam_2) != __alignof__ (int)) + __builtin_abort (); + if (sizeof (union with_fam_3) != 0) + __builtin_abort (); + if (sizeof (struct only_fam) != 0) + __builtin_abort (); + if (sizeof (struct only_fam_2) != sizeof (int)) + __builtin_abort (); + return 0; +} + diff --git a/gcc/testsuite/c-c++-common/fam-in-union-alone-in-struct-2.c b/gcc/testsuite/c-c++-common/fam-in-union-alone-in-struct-2.c new file mode 100644 index 000000000000..3743f9e7dac5 --- /dev/null +++ b/gcc/testsuite/c-c++-common/fam-in-union-alone-in-struct-2.c @@ -0,0 +1,51 @@ +/* testing the correct usage of flexible array members in unions + and alone in structures: initialization */ +/* { dg-do run} */ +/* { dg-options "-O2" } */ + +union with_fam_1 { + int a; + int b[]; +} with_fam_1_v = {.b = {1, 2, 3, 4}}; + +union with_fam_2 { + int a; + char b[]; +} with_fam_2_v = {.a = 0x1f2f3f4f}; + +union with_fam_3 { + char a[]; + int b[]; +} with_fam_3_v = {.b = {0x1f2f3f4f, 0x5f6f7f7f}}; + +struct only_fam { + int b[]; +} only_fam_v = {{7, 11}}; + +struct only_fam_2 { + unsigned int : 2; + unsigned int : 3; + int b[]; +} only_fam_2_v = {{7, 11}}; + +int main () +{ + if (with_fam_1_v.b[3] != 4 + || with_fam_1_v.b[0] != 1) + __builtin_abort (); + if (with_fam_2_v.b[3] != 0x1f + || with_fam_2_v.b[0] != 0x4f) + __builtin_abort (); + if (with_fam_3_v.a[0] != 0x4f + || with_fam_3_v.a[7] != 0x5f) + __builtin_abort (); + if (only_fam_v.b[0] != 7 + || only_fam_v.b[1] != 11) + __builtin_abort (); + if (only_fam_2_v.b[0] != 7 + || only_fam_2_v.b[1] != 11) + __builtin_abort (); + + return 0; +} + diff --git a/gcc/testsuite/c-c++-common/fam-in-union-alone-in-struct-3.c b/gcc/testsuite/c-c++-common/fam-in-union-alone-in-struct-3.c new file mode 100644 index 000000000000..dd36fa01306d --- /dev/null +++ b/gcc/testsuite/c-c++-common/fam-in-union-alone-in-struct-3.c @@ -0,0 +1,36 @@ +/* testing the correct usage of flexible array members in unions + and alone in structures. */ +/* { dg-do compile } */ +/* { dg-options "-pedantic-errors" } */ + +union with_fam_1 { + int a; + int b[]; /* { dg-error "flexible array member in union is a GCC extension" } */ +}; + +union with_fam_2 { + char a; + int b[]; /* { dg-error "flexible array member in union is a GCC extension" } */ +}; + +union with_fam_3 { + char a[]; /* { dg-error "flexible array member in union is a GCC extension" } */ + /* { dg-error "in an otherwise empty" "" { target c++ } .-1 } */ + int b[]; /* { dg-error "flexible array member in union is a GCC extension" } */ +}; + +struct only_fam { + int b[]; + /* { dg-error "in a struct with no named members" "" { target c } .-1 } */ + /* { dg-error "in an otherwise empty" "" { target c++ } .-2 } */ + /* { dg-error "forbids flexible array member" "" { target c++ } .-3 } */ +}; + +struct only_fam_2 { + unsigned int : 2; + unsigned int : 3; + int b[]; + /* { dg-error "in a struct with no named members" "" { target c } .-1 } */ + /* { dg-error "in an otherwise empty" "" { target c++ } .-2 } */ + /* { dg-error "forbids flexible array member" "" { target c++ } .-3 } */ +};