From patchwork Wed Oct 30 18:31:51 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 99837 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 765423857B94 for ; Wed, 30 Oct 2024 18:32:58 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 7065C385841E for ; Wed, 30 Oct 2024 18:32:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7065C385841E 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 7065C385841E Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1730313133; cv=pass; b=gRNBM15yvuYeQaGq2nZJOgCHvvfKugODoICLobsHScJO6FW44UNXgl01+JimMJj82BK6SuoFstu49WU77kyYijhp4mi/z6oz0PgKr04odg3glW/pRPwiYGcUA27uvAUp918FGy/Zezao8jKD4gQBZELdl5An/6fLvzTqOIaCuZA= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1730313133; c=relaxed/simple; bh=7RwnuR4MSWEEeoTBOlsHsuU/+6m/DucwNqSJkI4u5Bg=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=QQxY7L4FDQYQlfniGi4bdcJ0xPeJn4QTmybc2tmqhItBcrLNAD23WuFHeNFiirTICTQ0AAi2fUkSnQSZ3YTzQu19RRUldEocVvP/NKVeLxdJ1MORnR52Wi8D0TbqQydyW+6QR0F5SMxJt0I1UrbkfVV8UFDcbyXZBpLnSfspBak= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 49UGXZa2017453; Wed, 30 Oct 2024 18:32:09 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2023-11-20; bh=Z8fmpbIUaoAzJ0b7JOYoxqQkOyM6PAdXZyG9hnDpuCA=; b= e3XwoxZ/jMox4uWH+Mdx3fy0HYBeCJlPVwsmi7ojWpo1Z+VezeGbZWlH+3VmwLUY FLEr9/ejU6fvt3tU2lew718Z7U4Co/B2C26TKnvXh0g7j3XBju5CYMBZNbNh+SDV D4sioqtQkEc7ZDhJro7YuO2JnVLZH38zpP/zEqt1gVLllCZmkdr/QwpKk0KMzaLe 7M8ruXeJrFt91AbRNhXllsMeYJxrYODemME8mP7fAMuRf/XqCb96otkTbh/ovGA4 vPu/II73MpOYRwMwoWiH+oepICXM0802+Sm76OO1uGXCa2be0oIEtRhR3Svt96r7 OhWscZleA6NA8mAX6IApeQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 42grdxrr3d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 30 Oct 2024 18:32:09 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 49UGuvgj040314; Wed, 30 Oct 2024 18:32:08 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2168.outbound.protection.outlook.com [104.47.56.168]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 42hnaqxyw2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 30 Oct 2024 18:32:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PCfR6AvRwY2a7Rqbrl7Qubv0WxqbvD8ME4jf3F2qLRAjV6aCNGoOkaFPuGIa8RKm+/u1iS7gA2bJavGPt17omOjcKWxn/Uq27n/KNAjqCE5hip10iLMkJhWwnvohrWRrszxkAYVBDYnwY8Ni2JO3JDhJVIzMNjD6A+eNolO1ro2NBhUcaM6q/9R2OaslNzExSsGVhFq8aNDCd4JCaszonJCh4ejhh7hC+JOyTHIUvq5LlvA2xwE6GKrNbMx4PtmalmAV1eLQYWmEUKhb1MOUnMfy15fdeYv3oEp5Od03JLe/eRbmJvThUwrmWwpD92jX3JpJEpcp5DaUW/r9HMEnCg== 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=Z8fmpbIUaoAzJ0b7JOYoxqQkOyM6PAdXZyG9hnDpuCA=; b=jeHtQS6IS+Vw06nnBG3gVjLlEUtSZsLgRoW4lV6P1Ul16xwPzXzsZxKcGh7Ea8kcAl0A8DuvMtV9rrK3tlnlF9Ndkn1kGOg7yLdj7BcRI/V83FbZ7+1NMTDw54ycjoz1hZm1/vE8BkTEE1TgsRTy8eGG8rITTAIIIdS9gnC4kEgHRbJNvwxO9bdYVmKXUN67eMHO7lJOiloOQvzEm3N8D8n057c2DPJ8zx6NOnSfTo3DsNG3WZK3xpYtQ3at8vQlgXUmbvVT/Y5HdXbitq4o7OtGrCPQjvwXbOV+ZgTcqp2ufUzSNQHVPHKKNEkvs2hmJCrMncC1V+Cy7jAY+vBtSg== 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=Z8fmpbIUaoAzJ0b7JOYoxqQkOyM6PAdXZyG9hnDpuCA=; b=RvjkEKCiDhvzuIqKBVWy/9j21SM90+//yorCZF2svfCZgEGjNvobhqm7tQqoFG4aMnlXlmWcWQnOfQGEOuDNHTlCdB+IlK1Sz+5ti7n05ZxqfqYuZP9/dhP3hP9BfVRhuZYyDg/yonaPJWx+M80VYVTEnU2QSuK7GieumDaYFIU= Received: from DS0PR10MB7953.namprd10.prod.outlook.com (2603:10b6:8:1a1::22) by DM4PR10MB5990.namprd10.prod.outlook.com (2603:10b6:8:b2::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8093.32; Wed, 30 Oct 2024 18:32:05 +0000 Received: from DS0PR10MB7953.namprd10.prod.outlook.com ([fe80::5b2d:d28c:8773:c84]) by DS0PR10MB7953.namprd10.prod.outlook.com ([fe80::5b2d:d28c:8773:c84%4]) with mapi id 15.20.8093.024; Wed, 30 Oct 2024 18:32:05 +0000 From: David Faust To: gcc-patches@gcc.gnu.org Cc: jose.marchesi@oracle.com, yonghong.song@linux.dev Subject: [PATCH 1/5] c-family: add btf_type_tag and btf_decl_tag attributes Date: Wed, 30 Oct 2024 11:31:51 -0700 Message-ID: <20241030183155.2038501-2-david.faust@oracle.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20241030183155.2038501-1-david.faust@oracle.com> References: <20241030183155.2038501-1-david.faust@oracle.com> X-ClientProxiedBy: MW4PR04CA0251.namprd04.prod.outlook.com (2603:10b6:303:88::16) To DS0PR10MB7953.namprd10.prod.outlook.com (2603:10b6:8:1a1::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR10MB7953:EE_|DM4PR10MB5990:EE_ X-MS-Office365-Filtering-Correlation-Id: edc2a2bc-909b-4935-d783-08dcf9112757 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024; X-Microsoft-Antispam-Message-Info: 9dLt2zY1lyCbvpgc8c8t83fvPwwL7DGxUd1fXuXWnEAUUxprSexI7Hk0uNHimy/aOs00tF7qzjoPhEnX8Nj2igdU43U8FgkB9qjnZskCR9HVZBeTK5foAGlbRa7wv0wRfPz61yOvqN5i6Co+cUdl4yjZTtn3AJ8Z5Q7d2/rbHEu4Ntkr0DeBcXm25gSdqQDNZDtjqZorBThR3VNVRmK63pbHNeqDwE9H1Ge67P+IzvTyj4MKBsKflM9rm7+I31Dog9hBZ8BQBL/U/hCScX33cc4lIYFYG+qNTpNiaEGYC7ghRWQ/bRXTMfooSU4qfi81gZEYhNqKYtafIGRPWBtDxYepKgrdkCyZNHJphmcbID3uoBkuTpQYRNTJLCQVl/OXRzFFFlqykZ2tx3yAj2ibbt2EsF0MbYMNnt8wQDNnDEX3bXb8ugG/ryPkz8ps6cnFVkFltFKesjT1MmlRlTXBnXBlEq5IJew34K54HSVxPL1yuABktB8cTaPzk3ITYE1zB9oJmn5CzgAdnDJHRztpM+XoDFWD1Q4Y67fpz3ryFtswUuBOvpe6VP8Zsi5BnysuTu8varFgLPh2MH24QUzYQS5JJKBFJAspU0YVUZy7xKAIR0DFu5DpBJyseute0YbfzNaL1fCIl0naQGMV27Kf39yD9kDekrbCW8xKJmnYnzd1vMO1Jgg9XxEyRJgjIfS5NuYmsCJ3IxwaFCu1+xMU1dYvHHOzzx9dOdSV7jENzr33Uk1mWEWKgLYsFPxdk9Joemwda9vTgnFVtZ4RL7odJXnb+xpfduh91VIbqN1fCUbgkgaj2Vy+qSWE2mV4BcC9YcJyzCLA4IBkXqrgB9s+5CE0uooZyO67cKBWdpejFBm0t8ndfw2dQiHpX4TT3zq5Q8WwqAst0RgTGSp01B2955Oo+Tin5wJShc+De3GZo3rAJ05c4idHBIXhwGfaJgTOrJap87KjPUsmuhgxLRR8EMgZb+b4BSpys4gG603K5SS5sFMK/Ju1Tuf3gpJdA9ZmkGHC5+MQmzqslKB7Gg/L9PH0x57bOxmjy2Mh8BtsK1pMDjLo7Q4fftxti2ude9gPP7JNGKsJCt28XV3RwKnevk4tPBQB2Sb2I6SX+YV4+UMJIEF+bsHD/rLFt1zuyuMLd3X/Kj6k4Kpf5OQWxnOI2aDxBbnaN7/XqjihuSiNYwHtCPG5QpF/bM0ZpCRJicWZPxA7Dh6DeXVe+ZMdatBgOwF30/SMi/ECpjj18AOHWOdmUDC2cHegggt4PaTPcO9g+JkPmHLbY5kOEX6eLJ2X2kqbdFD0O+ckTKyj92VSWXzmOC0n1gExoUd+0p3HmBQg X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DS0PR10MB7953.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(366016)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 81+BVX2pWPkhzmK7J3bLcwat627tChiQim3bvJfBhNTzG+EV+cVaFnp73+vH6wvw3r/KQLz18tjKUaA39+eXeVdFs9BUrqp97k8cwqoT5mgZocAfMEfNiiddxwUUsGvMOrmaTCmPA4WJXHuNdVvvla92V0vTfVKPedyFzAZfzwqDerKAN5ljOV4nOSIQWw91XD+mYnwU0SQGIsAblXW3+aVlfY5NYZOBib5rOJ/07E3xL97V93fFIgTIuQjLa196t6IXenoF6oTWOFGjL/VlKaAIOBBh+vGZcgP5Bl23HR328lxIDJSKv2E29cW1N5257g7BYe/gFO85+MoROD5NPUFrOaN9y0P9nJlKW1Fh70CLhr1MbjRNlqERHDa/W9bqKAVKkWO7xmO6FSbyucWrR52ETqwuN50Im5PsoSEnjAEfwTFSxwwCeF5sehMaHF1+8helKDQ43huy6HFtaYzKGs/jNL3RUMUnt7aMsTnQja9APlWSuV+E9NhPjihDRXG08ek3y8o0f1T8FtskI1WMP7E3i6r+Pqka0WRcHez53p9MKhbRjpmO4y6+RTuPufh+4O4nN5SCNgNYl/F++hShPEFCoqsv5brna5d1F+ApHU/qfn2M19IzqQJPdWtaCVy1xT7e0gum/WAMrmwXaRauEStt5UcamY/H77Lt5sdlKBy0+jAMAmDY8DaaR5rs5Tf0U6aREZK/ZxX+HeSPjhIy1rtQTcXTpbUADW7Y6kEj2Jxcxrs/m62w8F/y7Mpt8GIANIrXAQ0CJFcVcBZomDnC5if7/hispn4DGK5VV+9tQ23/3Ao5Dttd1gzK/BBhJH5TW3+PxD+JzKuQjVKXIT5QQiPjxbFXo/llFiYyo+a7WwrxohRpHzDxbNs85wdUaAhLh8XUAhFi7+NU9iEYWVNCcV4JEPwauIK6SsT1OOeAzL3H1+H/AyZvI95yEaZ8PvRp9fPPXX2SXU7zC7tMWUmhr0657grGRq8/Znyo6lG1iPR31YY8z4YboxwETqAdxPLQ9y8pTof4tc9ptlKUZ5UiWXAG87A3adcy9eT/44RERdYWcgoZrlHrNUqTc3FT4DijJpz1BclE06fYgdPpXCzm3edh3vR9Hi8cp6NWHZUQQImLCJ2CPk+vTrfAq6LEi+SwGfw3vs8JV107jP+RhqPLjFolI8d4E8W4bdqH6zHalmmgjZCW+argZwzvln9o19x3pUaCUL1zPkl3CHBrXlp5e3No1vuWDIg8DL8CgsS4LwYBxvYgzMxHEhASvnW8wG+z+W3YTXyAONE7ULYKjr9GdA+HgjLeoCkTIeu27mnZXZ/7/mke5YdkUzrU/G+DRqtd81g9m+lKqSwPJv4YhtI3aiH+Wj3eHqVQlAgHqiGbjGDEkibosAljLyLLGjiCbgxeRSZM5jwDoh8BmHjJRNhx+YdUwF2LTeDrA4q0ceK5GCD3ztdO8KXwXHAUIVyn2+QUaW97oULNkHO14B1NpIE8WjkLr+uMoF3y4X7hd/9RC2MAJzzCk7C2nbRrN3E48oY8PxzD8v9zcYVr8dNmcgLhuoMuozixsqiqU33yvg67rVyOxUfV9FBB1uKIlJrdr5kn/aX6SXRKTqYJJB/56/YDig== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: WMyeCBecUHFoz8b5tDdg8/pDK8gnMxvr9wKgFf8DeommN8rbw0eTLLiMIMTX23cMafvmbvi3uaCAhFcTlnmh0txVKSBfEg5UzJDTyCb+589YYXU+mqdz2bobv8M8CePs7/Ld8M+yurWzm9kQjsgPlcyvDoteJgl/s3znnWEIWJRgTNE7hJNw+CQKYsE9a4alsDc6LvIUPYBu/vws1QspgMOo/Cmb7dkpg7U4NISTF3ihKAr3apzRoX3E4wQauBv5k88JTS5sYImsfL1z0XKsx7MX8S54Gmed9E7zg2Pxk/lZedqXxwKsRnMd23MP7K/LA0PzCCHvMNplLsbndiS0D0sTnPSTbWC6+Spj1BGss03I0DjbFv9J0EmCFX3qfr7vQaJ6vH4pRac98k03vRGwlbbOR4E7JG6piaLpMNBUDjuuUfJjvuZz5QAjxnOaaI9gF408XuFTJ32DEvxG+w0gL+tMwTXsLSK3M2ssGkkM6M97m6q/1MLJXDjzNf85JwM8Ks/IO84/ffcSmDApGrR+JHxLJeN5upXybgOpMvFegjhPOZe9ZUJK4h4E5h+dVeTnoWOg71R9gvDixu9aDugwNEdN0ysBLxCeWb1W0mmGHnU= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: edc2a2bc-909b-4935-d783-08dcf9112757 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7953.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2024 18:32:05.1629 (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: OC6FS/dNgEQtXa+Euc3EnwAGddtrVoqPJMSR4yUuTAP/uTm5ox/Wr+mUH+ipMbunqIzDNYXl9k2IEnj2IYm7Dw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB5990 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-30_14,2024-10-30_01,2024-09-30_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 mlxscore=0 adultscore=0 mlxlogscore=951 phishscore=0 bulkscore=0 malwarescore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2409260000 definitions=main-2410300145 X-Proofpoint-GUID: KUIeDq8bRbbEHUpPDuAx8PCR357HnL8t X-Proofpoint-ORIG-GUID: KUIeDq8bRbbEHUpPDuAx8PCR357HnL8t X-Spam-Status: No, score=-13.8 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_H3, 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~patchwork=sourceware.org@gcc.gnu.org Add two new c-family attributes, "btf_decl_tag" and "btf_type_tag" along with a simple shared handler for them. gcc/c-family/ * c-attribs.cc (c_common_attribute_table): Add btf_decl_tag and btf_type_tag attributes. (handle_btf_tag_attribute): New handler for both new attributes. --- gcc/c-family/c-attribs.cc | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/gcc/c-family/c-attribs.cc b/gcc/c-family/c-attribs.cc index 4dd2eecbea5..76374413f9e 100644 --- a/gcc/c-family/c-attribs.cc +++ b/gcc/c-family/c-attribs.cc @@ -187,6 +187,8 @@ static tree handle_fd_arg_attribute (tree *, tree, tree, int, bool *); static tree handle_flag_enum_attribute (tree *, tree, tree, int, bool *); static tree handle_null_terminated_string_arg_attribute (tree *, tree, tree, int, bool *); +static tree handle_btf_tag_attribute (tree *, tree, tree, int, bool *); + /* Helper to define attribute exclusions. */ #define ATTR_EXCL(name, function, type, variable) \ { name, function, type, variable } @@ -635,7 +637,11 @@ const struct attribute_spec c_common_gnu_attributes[] = { "flag_enum", 0, 0, false, true, false, false, handle_flag_enum_attribute, NULL }, { "null_terminated_string_arg", 1, 1, false, true, true, false, - handle_null_terminated_string_arg_attribute, NULL} + handle_null_terminated_string_arg_attribute, NULL}, + { "btf_type_tag", 1, 1, false, true, false, false, + handle_btf_tag_attribute, NULL}, + { "btf_decl_tag", 1, 1, true, false, false, false, + handle_btf_tag_attribute, NULL} }; const struct scoped_attribute_specs c_common_gnu_attribute_table = @@ -5069,6 +5075,23 @@ handle_null_terminated_string_arg_attribute (tree *node, tree name, tree args, return NULL_TREE; } +/* Handle the "btf_decl_tag" and "btf_type_tag" attributes. */ + +static tree +handle_btf_tag_attribute (tree * ARG_UNUSED (node), tree name, tree args, + int ARG_UNUSED (flags), bool *no_add_attrs) +{ + if (!args) + *no_add_attrs = true; + else if (TREE_CODE (TREE_VALUE (args)) != STRING_CST) + { + error ("%qE attribute requires a string", name); + *no_add_attrs = true; + } + + return NULL_TREE; +} + /* Handle the "nonstring" variable attribute. */ static tree