From patchwork Wed Oct 2 15:26:26 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qing Zhao X-Patchwork-Id: 1992068 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=okfmSPxS; 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=vpFgFRrs; 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 4XJdwl5VWbz1xtY for ; Thu, 3 Oct 2024 01:27:51 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 99E0F385C6D3 for ; Wed, 2 Oct 2024 15:27:49 +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 B3C483858D29 for ; Wed, 2 Oct 2024 15:27:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B3C483858D29 Authentication-Results: sourceware.org; dmarc=pass (p=reject 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 B3C483858D29 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=1727882849; cv=pass; b=diMHv3ERn/j7UTAT7fttLWbCj93v/V4P2/WnoN9jZPzclTPheQW9533mnY+Jr4vkpz5U/Gnzh/dYEJ7geQYtLB9K/wyYe4Qwl0nwMoZVhTwg2QCL3Z4uVwMYVbjTXf/CkLqNcyA9fakfcsArgJUMvhoC+vWV+JneKhtt4ly1xC4= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1727882849; c=relaxed/simple; bh=uJ6i0Up5L7DGaBWqSVGanoEjgLG7s6oP5qyQ1RHR1+g=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=L2HTukNA5H9RcAcS0D0bFgtprkRSyBhC9uszToDfX0uaJXvyJmExRejtPWE0Fxq8+4PA1Ye2r0sLh1X1MBWh+n8p0X/jLAv5SR6YONiFdqY6FmpPNxNi8CsFHTUI4dmotJmB5u0Bz7EE+wm+56SPsjahsG53QEYoZUX//wn2YDE= 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.18.1.2/8.18.1.2) with ESMTP id 492Cd4aI011628; Wed, 2 Oct 2024 15:27:25 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:content-transfer-encoding :content-type:mime-version; s=corp-2023-11-20; bh=gg543PQchoCNJV ud7uszKeceWnCGg/CCwt+rOXaovGY=; b=okfmSPxSwZ228BX0J5GN+DeezbxUqw kujCZm8SqWVHjTaST027VRXNyVXTtdbmhBu92TAQMnVTuVwuWyiiwSnIT0C2kz4G B+jFk6yVxV4q8611xu6PMYZwYwTL4W3eDkQMvztzKD7IrKaP37fcWv6cSu9zt/mV 8C9TQf06P6prUZ0U9GJ7McfjCnPeQC9n6vHGImmFFFEoqhDJTKtxtmSS0iksnr3j J0CaRWVF7s8KXq+vrucvaCWPqaM/W8pOYrFej1Yxs+ZQMB+zTBN/FYDTt9PZRxY0 zZzlE3/GwcVzd0aZ8s/+P5UTFWbBiwMQnxrT5Hwe4Xk8Lo1/BDAcEBqw== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 41x8k39ra0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 02 Oct 2024 15:27:25 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 492EPF35040504; Wed, 2 Oct 2024 15:27:24 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2101.outbound.protection.outlook.com [104.47.58.101]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 41x88900yw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 02 Oct 2024 15:27:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lV0/v78pixP8gx9uBJ4xXn5XhXEls+e47xEmjGP96Qu4rYE0A3gVPz6GLijWQSTK3h6y9hTe3dtoyGloE3b9bfUoX9lJanXVcg04GBg7eVknSh1ogwH3pQZb4HbA0ShMM+KxFRVfmhWpVimStq7Xz2uZ+Q1p1jf/XBCln9Ny1/PGepXywpG0fJXp7cgbsLkb5WN8n2SM0DkjmG4UYeCwHzYq+u449R6nVWlTxJZFEcgHIWt2xzuTWCK2J+AXPP6/F638jA2IXClEBCFT+8UOexqudM43PGOGDSHFTHbVCcg0vLviGV3SGMGwZwqadwbw38UVCDs1Lo3TcdCE+WPfBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=gg543PQchoCNJVud7uszKeceWnCGg/CCwt+rOXaovGY=; b=AC/FSqL0fqCeOK/h93o/ZD2nA7V5oE21dbNQiGKhAcSLEGwFtKzUkqqszcYhFkOtq6h7zhiKDslCqgKvVs0Hf7SxGiqbQpF0dZ2EqRLnkLY2evwcR84QmsDpnTcXq7luDgX3u4ZLMdahboYpSKSGgg8CWTVqnuMHml5fnPuSP5qFh6sbH92u9RDj4MqzTGvjNRAXBNuuLalVuAjtYreR4WoS7q2vsZ0JTTfvK0JHPhRhQ5usn1oYDHzUVWTfezyMsUa9r0a/1IgVE429D1YKFudeGOn+pi+50jTZzdRVZrqQCynDmAO7VxQyyi0ybN8ABPO72Lpyeu0wotn3DM205g== 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=gg543PQchoCNJVud7uszKeceWnCGg/CCwt+rOXaovGY=; b=vpFgFRrsPX9+/Z0zjbZASI9GnTVN2/HjILryVbgN5+5J7LNf6sX/LQj9UWt94Zp4eMe1wwsebxoYWGrCEBV1iD3uPbIi0eEXF3Zi4wX7m3XLOA6qIKeECNjJhfyNAXznyJgFQHIa+Ua4jhDBo9jNvUn/6ehl+MApKvnbx50TEd4= Received: from CY8PR10MB6538.namprd10.prod.outlook.com (2603:10b6:930:5a::17) by PH7PR10MB5814.namprd10.prod.outlook.com (2603:10b6:510:125::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8026.16; Wed, 2 Oct 2024 15:27:18 +0000 Received: from CY8PR10MB6538.namprd10.prod.outlook.com ([fe80::8a:61cd:764a:e47]) by CY8PR10MB6538.namprd10.prod.outlook.com ([fe80::8a:61cd:764a:e47%4]) with mapi id 15.20.8026.016; Wed, 2 Oct 2024 15:27:18 +0000 From: Qing Zhao To: jakub@redhat.com, gcc-patches@gcc.gnu.org Cc: bruno@clisp.org, qing zhao Subject: [PATCH] C/116735 - ICE in build_counted_by_ref Date: Wed, 2 Oct 2024 15:26:26 +0000 Message-ID: <20241002152715.4043037-1-qing.zhao@oracle.com> X-Mailer: git-send-email 2.43.5 X-ClientProxiedBy: BY1P220CA0003.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:59d::10) To CY8PR10MB6538.namprd10.prod.outlook.com (2603:10b6:930:5a::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY8PR10MB6538:EE_|PH7PR10MB5814:EE_ X-MS-Office365-Filtering-Correlation-Id: d85102b6-d567-4b71-9911-08dce2f6b3cd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014; X-Microsoft-Antispam-Message-Info: rCaushNZh+T3sxqHoxflqwmACoRSpkhiUooqcRDOmS8XHsYjuOXRe8F3bS1ucFM/8RQAhxhpIVv4YkkUYyccui9kSjIgCp6zp6s/pcY5AUBAA5mXgqN1HryeUk8VmFwvZYlvmcfiK1DYG9a24hVuoRCUF92tm0Nj5DHv4EvFpuG85Og2bVVSW7YkCe9U5D7FZZkrGq2ZQMsS0aSd/QZZbESHK6vncLy/HvmxsOi4IDOnYLByIv/gI1i3Sn1iNqkw7iy2WodfpMylvP3/9AhuzlbfSdEIwbNNntn2RMOAJvfAOlI+zqDcqG2UTZqIiK5Pds1Dsjj2ke+7JANVxLHuO0BKVEykVeU+Sfau+uWPIy45b+EM/KM6Bes0BjiAvg8ZJhiwWDW6Xfokj+/HusG+mswFqqtf61gIAToUktQF0ogmHFyTcPkYZkhsix1adl8eU6WrvUcECqjco2Kl0Zh2P3EvynTxaJGVotLNZqq5M/cFalZKLy8Ilsm5UPhGPT7S+oYi5El6emqyXvcMJP+QjfzVHnLTubNigkNZRdQ6S52bV4qqR/OrR5VWmdOsYceQbrOcAQTwt/bcDFMxPd/6WFXM7g2aCm0Jc3J2IgwaFNAp1AHCgJE4FZdvSbzmLelc08JyVuMPCnnMW3WgAzwZv7bYsRwNncF/C8t+yrMJqhG8TMXmZ2IUUG8aSwCiO27KsAM0JNR3ADRXvC/hhMnFsVzRSaQU1GaVofw6+r/X7L2Auc853UmVGrxaTnH8wGGAZ/UEH9fZj+7Jz+tFdsg/kjRJRLjpuZE43awleyfDNY+smFIE/4etmt60iJ47pq9pRxUfRBNCl0lvu3o3uVS+AMC5j4R9unn0m1sNXfjURzdWvnyQ8eSbSiMmOyY3qJv1qhetO6JqqIHVrr3vfK6leN2Z6Sa9fjOL415AVFBVB/EWEYfZWoNw7cOCgbjpOwUTaXBPr2K2x4wm+cX6JL8KaZ6Odb6Vdj/u8LyRj5ZCqGhegnfadgOJoLVZJg+6ZrLajMNRu1eMvEL4klmKy1jB9yLNN1zNAzGlKe3nvj9r6cJ34zH4rvM/8Zf+16AboshFE80dFgoxvjmfvCk2FQnMe1ZdaOKOuKRQPRfurcegIUUT7L7eSG3iR8AKBrC2ANv0rPT5TWEHva3qmNETV4YjuaLIX03HMitOi9q6q3W2adnSn+SVjibN3qizb+3qSaT5z76AnNmVftFbNte9CdiWhhJqZu+2tREsDbSM82FjXRs= 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:(13230040)(366016)(1800799024)(376014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: BOcBKsysAgV8QlwLISOOamK/8SVwYOPOrBE6nGH9JosEuILXL+QNCigO4Tntmlv5t4ydBJVQelpehz7q+0ZDDgMtxIU+nzNYrLeF4ZJ/Q8PCJvKOYm20DPlnT+ex81qq2ZXbH9a0dTMqIa2u8U/lDGRVH6tA4C3BmnzafuZLkIen+ylNh/bWil6dlfwLzvM7IfbXssN9cNOe5g0CEYrp1t9Hgmeua8GNO+OVeVa0cVm1785X8dNu4PZzhF4dKPfyAEEDiT8x58jkjQEg1N6EMy+NCrepSHBVQ+NgYBVNCGKt12kVAAnPg5Ed81p/dxUaK5jfnLhTj9/qOVv8B9Vnt1GVC7OhPThVFlOpuwm97zDskq3QV53ImBUWQROLSJWNuAxbSDLRPKjoyGAneAdps13mgbK1IprreckSVt1JLYXCAqocOXAFKTDE7Rma0QS3xuPYyLqbFqG220P9c0jnnEVXGvw0IWTv/DefCxdqFjAqMGZMGFYCbUnp1Tw/bZnm+k+s0eu0dq8QN654XiZkNFvTjx+KoGEd3f/SkKMK51it4vailSO8nS3jTfsVfxm04Hb3cna1qkb9uyFp+w/ghciwMCmLKzV98XLbH1ZKFc/GRz0Z4SRfv5txClpoBll/U0q4OFu7USA0UodVxpZl/iwuudA2raHTCdCK9W1FgeIiFVId1NU31mvndm6rDo4bL+N0j4Z+nGAgn9haJpuk16kmRKw/U4o5oNJLEjGgnauS6zZkkC3FFBO1TU5XiPKZuOx9y1EuRrcEmbnZzcKH7itE0w+81Jn5wOqw6Un75f11n8P337tZDN92fbffvi8ubt0ipPgXoyiO/+5OdE5zyIHQcZFBbUxlCYjxWsPASFilcuBWpu41120RWu3rOziBgFqB5TCQE8swSzLYGLgjgHEkDo58LBmnMJLtVonif4jRF9Q/V+nAwlZCuf/l07xyfSeRWZdIjscxE0eJj8RGo0nIxgsYQfAcQHSzCbcuTiKyytM7kGPTy6PlR1ueX+ys9jDFX1EwvsNc0ofmTWHjWVZFeCLSAF/yXUe6YgYUT/CWUgHxXH8uEGuoTuw93kbj6QbKK9on//HxP9p392dptOyN+DaoJL+o/SAy0hoepC5PwlX7zbRVxCATddE+Hn4e7ZEEkCqapU2N0uxYUss0m1sIVoetnrngoB6+p2EvY9vFwKRHZBc7oP43krvimgm20ZRvKt9DnW4348qluLtMmP6Omd9gjihXOaCRw/UKkNGADdMv1+CF/4qj6C4rcV4txdjqjGTwjLWda+2XqMp8vBKyPaMI01vQx6iODpDwD4bzcjFkvwL7Lc2AAxlORfAaogx27XJWLCzFL/UvB7GFuyR45d3gJKNYE5fjOx1VOzeMDhYZsL9lj6m6kKh8prQ+HXuKHV/prrqYHNb90tmHopQw1q7wJj0Dyqxu/4rgpAdA7UFdzsY0viz0xorIyb3CL/rm4C83EeKkMTKztrYPcubwWjiEOpKsPZy03zpTJzm25j4pgOJeEwVy0OXTXmt4YU0wb8n4G48V6hy0dpv53nVMfUYLA7Oipgto6aVqz372FTnrmeflqCfn4bp58EZT X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: z0w9V4uVQQ2bbso/tF6vCL4lwOCWNx3X6FHcfUAAWTzi+HZFdD4JA4gONNgM/A0rZThxcD1AMZVaTnlZqSCV1cdZKWOD2AVWj/1XjQXwGNT0MCxgPg9LOVxvDJ8opPmZkVHmOdb1OfDPAKgwLYN3pXqhs5a123gj0nU3UYd6/8jOrngjLCkgkL4i1EcTtejPxEh6qaIG2SKvTR8bErqhyMQG4sjWrXI3cz36weVzKDdrrHieSrnYmCKPS3o1h3uaIbXzxaI4w10qxiuRu7VAZq1mB2u0XJWY1z3vS4MBEcUteZj1lVid90aaxhvRAQMq2uR1Rq0GbwvFLa8YwL8HOMjDNxaftZ1mepbinl6s+yQjsvGcHiHwvhV8zYP65C7MQFOW8VwbYefh07fWyZ+wxqbFGDkF5ZSVFCr5kzaiW1Z4aAzQvymjzIH9Eqy860ocDxoS6Ug0CQDeZEKmfKrr3Z/8C0jbyEtJb7pPQ+2gIYJna2yR9nNptvD57cLJxiye6N8tSErnztRF7G3qyP2kcAzNeN2ualzoanIarP9MVQFQIuooL2gWF3irlYeIrTINGtV7W1EUt0VQQ7YeKqg7RwQ3IAeWPs/7QUZES52Amm8= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d85102b6-d567-4b71-9911-08dce2f6b3cd X-MS-Exchange-CrossTenant-AuthSource: CY8PR10MB6538.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Oct 2024 15:27:18.7234 (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: 3LKfYzobjfYbSbXvY9jgmppdeAyUgBhiopLNEQkxzNdAQEgDPuxiZT5VddT6sSsk0qYlWbdGEaBbdQhX291upQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB5814 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1051,Hydra:6.0.680,FMLib:17.12.62.30 definitions=2024-10-02_15,2024-09-30_01,2024-09-30_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 malwarescore=0 adultscore=0 phishscore=0 bulkscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2408220000 definitions=main-2410020112 X-Proofpoint-GUID: 8CfAqK2SsLdk77ZdJZ3M1yi7dqiBfPf7 X-Proofpoint-ORIG-GUID: 8CfAqK2SsLdk77ZdJZ3M1yi7dqiBfPf7 X-Spam-Status: No, score=-11.5 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 From: qing zhao When handling the counted_by attribute, if the corresponding field doesn't exit, in additiion to issue error, we should also remove the already added non-existing "counted_by" attribute from the field_decl. bootstrapped and regression tested on both x86 and aarch64. Okay for committing? thanks. Qing ============================== C/PR 116735 gcc/c/ChangeLog: * c-decl.cc (verify_counted_by_attribute): Remove the attribute when error. gcc/testsuite/ChangeLog: * gcc.dg/flex-array-counted-by-pr116735.c: New test. --- gcc/c/c-decl.cc | 31 ++++++++++++------- .../gcc.dg/flex-array-counted-by-pr116735.c | 19 ++++++++++++ 2 files changed, 38 insertions(+), 12 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/flex-array-counted-by-pr116735.c diff --git a/gcc/c/c-decl.cc b/gcc/c/c-decl.cc index aa7f69d1b7b..ce28b0a1022 100644 --- a/gcc/c/c-decl.cc +++ b/gcc/c/c-decl.cc @@ -9502,14 +9502,18 @@ verify_counted_by_attribute (tree struct_type, tree field_decl) tree counted_by_field = lookup_field (struct_type, fieldname); - /* Error when the field is not found in the containing structure. */ + /* Error when the field is not found in the containing structure and + remove the corresponding counted_by attribute from the field_decl. */ if (!counted_by_field) - error_at (DECL_SOURCE_LOCATION (field_decl), - "argument %qE to the %qE attribute is not a field declaration" - " in the same structure as %qD", fieldname, - (get_attribute_name (attr_counted_by)), - field_decl); - + { + error_at (DECL_SOURCE_LOCATION (field_decl), + "argument %qE to the %qE attribute is not a field declaration" + " in the same structure as %qD", fieldname, + (get_attribute_name (attr_counted_by)), + field_decl); + DECL_ATTRIBUTES (field_decl) + = remove_attribute ("counted_by", DECL_ATTRIBUTES (field_decl)); + } else /* Error when the field is not with an integer type. */ { @@ -9518,11 +9522,14 @@ verify_counted_by_attribute (tree struct_type, tree field_decl) tree real_field = TREE_VALUE (counted_by_field); if (!INTEGRAL_TYPE_P (TREE_TYPE (real_field))) - error_at (DECL_SOURCE_LOCATION (field_decl), - "argument %qE to the %qE attribute is not a field declaration" - " with an integer type", fieldname, - (get_attribute_name (attr_counted_by))); - + { + error_at (DECL_SOURCE_LOCATION (field_decl), + "argument %qE to the %qE attribute is not a field declaration" + " with an integer type", fieldname, + (get_attribute_name (attr_counted_by))); + DECL_ATTRIBUTES (field_decl) + = remove_attribute ("counted_by", DECL_ATTRIBUTES (field_decl)); + } } return; diff --git a/gcc/testsuite/gcc.dg/flex-array-counted-by-pr116735.c b/gcc/testsuite/gcc.dg/flex-array-counted-by-pr116735.c new file mode 100644 index 00000000000..958636512b7 --- /dev/null +++ b/gcc/testsuite/gcc.dg/flex-array-counted-by-pr116735.c @@ -0,0 +1,19 @@ +/* { dg-do compile } */ +/* { dg-options "-O" } */ +struct foo { + int len; + int element[] __attribute__ ((__counted_by__ (lenx))); /* { dg-error "attribute is not a field declaration in the same structure as" } */ +}; + +int main () +{ + struct foo *p = __builtin_malloc (sizeof (struct foo) + 3 * sizeof (int)); + p->len = 1; + p->element[0] = 17; + p->len = 2; + p->element[1] = 13; + p->len = 1; + int x = p->element[1]; + return x; +} +