From nobody Thu Nov 5 07:32:45 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=epam.com); dmarc=pass(p=quarantine dis=none) header.from=epam.com ARC-Seal: i=2; a=rsa-sha256; t=1793618867; cv=pass; d=zohomail.com; s=zohoarc; b=Mn19H9BMyp4Ly7PTalK7TT16QBuxUaIdRl/xHel3uXvLHlbzs0cj+AHCYb7B8eLB8BvyZWJHuIB1m2K7dKUKGsvEiEVjZe43gzLkO6PEj4uqtQjwR9VKUorll5UWnTw0sdcIkL1jkW6omNGEmZh3r5Ht1mgD5sLs+3ZS7tepUYw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1793618867; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=qWEkDLfYHh1tUCRdaVzkbt628Bo72NXnTma0koZ+NTE=; b=XRUz4bfTubexEKw3dzgKzYcNPSfS8tGl6hJHJTLA8sHGbF8qLbV2nlo4NDKPhmyNpjLb2w2vmzlz+EqBMZ/rojbx8JS6Edih2i5A6fB7C3cUKh6xzQROXb6F0elKnAwQK007Ue4jTIBbSpKQoIfPQlDK+/tjr8N5VjwtH/sCoBg= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=epam.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1793618867175517.6850611481292; Mon, 2 Nov 2026 03:27:47 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.1468143.1677220 (Exim 4.92) (envelope-from ) id 1xNqC5-0002HK-3x; Mon, 02 Nov 2026 11:27:17 +0000 Received: by outflank-mailman (output) from mailman id 1468143.1677220; Mon, 02 Nov 2026 11:27:17 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1xNqC4-0002HD-W5; Mon, 02 Nov 2026 11:27:16 +0000 Received: by outflank-mailman (input) for mailman id 1468143; Mon, 02 Nov 2026 11:27:15 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) id 1xNqC3-0002H7-8N for xen-devel@lists.xenproject.org; Mon, 02 Nov 2026 11:27:15 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1xNqC2-00GXiw-Ev for xen-devel@lists.xenproject.org; Mon, 02 Nov 2026 12:27:14 +0100 Received: from [10.42.69.5] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6ae8738e-e002-0a2a0a5209dd-0a2a4505ad2c-10 for ; Mon, 02 Nov 2026 12:27:14 +0100 Received: from [40.107.162.135] (helo=PA4PR04CU001.outbound.protection.outlook.com) by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6ae87392-4cb1-0a2a45050019-286ba2878bab-3 for ; Mon, 02 Nov 2026 12:27:14 +0100 Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17) by PAVPR03MB9680.eurprd03.prod.outlook.com (2603:10a6:102:315::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.569.12; Mon, 2 Nov 2026 11:27:10 +0000 Received: from AM9PR03MB7526.eurprd03.prod.outlook.com ([fe80::904d:5820:80e1:41ba]) by AM9PR03MB7526.eurprd03.prod.outlook.com ([fe80::904d:5820:80e1:41ba%3]) with mapi id 15.21.0569.011; Mon, 2 Nov 2026 11:27:10 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=K2Dreo5FOwULhymmVvLjNZ2Y2oCwDrDRd00MImQOmDLoz1miUNPWZy38U1aWVTaTdyJsdu0mw4DYb2nt4MDd1Y/Jsyy9mFKx1Wy9uokOuiq/ctswtk8GPnp8IhoXFnx5Q0wnprtVeQHSWWUp5vJNlfgBCAQ8hwKXWTkiKU4E1AQZqi2Vhfr/Kru+EJTjmZ37Yg/hPV0KLh5zWUEQEnDS3hklOTZduCBirNoRcZSLL3tsTm8b/ZBVm8q3l28/oHgHoyZHhfskxVeCjYZLlO2icwGevGGfjqUpxBcEb7VfGfpbFVITLzMuMYg0h7f9R+ZfdiLsElAtdNeSwuIAxdx4tw== 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=qWEkDLfYHh1tUCRdaVzkbt628Bo72NXnTma0koZ+NTE=; b=jeYgjqJuieZZl2vQFXrwKZaIljtm3I7FdO/YV32ggg+mQ4wuG3uYy6DLYVzziw8Ouh6mH1QSKQKPuVn22SEjC1lD7q9nbNUh97jTqY1mWSqSWuWLxkwrlkwU/xohmWglnwGnapV0lMWjEkuFx+7TQY3Es3cjCdvznlVoKeyshurCQIqbuhfpL3QSbaRcsBS6bnwb/UdRspd/6ky86OfaaKnJB4edCSqIuzFfFhnbh1bdKcGdl5s83oeUo86ThX8z4OfEwTg2kTsAOUDLVIXOWOJ6P+lk6n7M66mGErxujza0Q+EO2mlps0NRa68U+dpCwI5rzZwVEzBHm+CqPAdhJg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qWEkDLfYHh1tUCRdaVzkbt628Bo72NXnTma0koZ+NTE=; b=GiXdh78O1GqjocNmzvx7SnqSJNci1ELucH+5KAHdPtDqlE6UUq/q3lpUCM9KZD32cyDLEaG1jU6y+76bdf86nHHC7pLNd6i78QBmLG/Qr8Homsf6B+BCrx2tjvSFJIilpSyNacG6L0pV//SauXJykU+XCfPmCtG0BklmP6tFmuWpkDzTkPqgzPvd9qBDKjoOX7rzNMlvkOuVJHKIoDrNaXrQFoDf5Ybb+8NhKlX4HUZPUPEyolCKy83w9ixevR9b5gBWyO14Y5kzGAeDYOrOqaapiO//WMyHuU/pbwClVqAXlDWnPuVkAYQ3AkuZ0SGsykRMAHlZW+wF/pCstVN8zg== From: Dmytro Prokopchuk1 To: "xen-devel@lists.xenproject.org" CC: Dmytro Prokopchuk1 , Nicola Vetrini , Doug Goldstein , Stefano Stabellini , Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , Julien Grall , =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= Subject: [PATCH v3] misra: deviate C library-style functions from Misra C:2012 rule 11.8 Thread-Topic: [PATCH v3] misra: deviate C library-style functions from Misra C:2012 rule 11.8 Thread-Index: AQHdar0Zg3xbnpOjDEOIG1N7fPDHpw== Date: Mon, 2 Nov 2026 11:27:10 +0000 Message-ID: <9f282c78786279ea38cd96e4e8fa080e5dba0b9e.1793616364.git.dmytro_prokopchuk1@epam.com> Accept-Language: en-US, uk-UA, ru-RU Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|PAVPR03MB9680:EE_ x-ms-office365-filtering-correlation-id: 2faa455b-3f3c-4bb4-8d00-08df38d43c10 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|23010399003|376014|7416014|42112799006|38070700021|261021135927099003|261021123027099003|260925022911599003|260925021911599003|260925021311599003|11063799006|56012099006|261009223027099003|261028144727099003|261021121427099003|261026121527099003|261026140227099003|261022105027099003|10067099003|18002099003|6133799003|3023799007; x-microsoft-antispam-message-info: 2gzK51fBQiXGy4ifu6mA/vGWNE995kezsfq9/rf1nOV1fCSiQ/cRXc8vqaJPDXrQ9XmQkCbWCXDgk5aSXlmvqzq9leUHiIv60YxeEhKn2QxJ+SGX0wmJXyZvkeSSUYxTkemvgMOL2lXXFLCmkhl/0aNQg7GtfUqQc6ysi1uZ/Y3p/PHJafFu4RMeeBnaH811tYLeLBvV0T2+WqdFXVEcQ68ePDPkw6b7vc/xjfbdvBw2VuNOHIQBQWSZl9TKdOwpupJ78356UOfbRpedjBLhgqdTReaTx6gp8Vvz9PryqfljeRvNFeIvXbtEDxs2q90V3qL4qIBfc3m8PcbT1frKsXY4kthdAikNceRl8fu0EEUqIb9lEIYKIro+Bp7vwIxdiGLjZDQZqbbj8DP6p7sde4c97e6HDFxlKwQ+tMlQGXrjCZseKMwBMaF85PI1BYi+6pB6qAuYeS6h5joLTblxIRXb8wsGAXAJ6TMEC6OnHKYNsgVE8U/bMox5LA/R4dA+iPsA93JWmB+wpv2NX3RlNvD1ckkaQgKilhHY8G8wETiTzidOAAg5kKK+ZSLx4zgkcYtvR6y3Cr8cTgvzOsrl0qT7GczMXa8yUXQJMbgj9CDiOGiIuT3cfMGvhfH8ak8NnUC3Flq2CLhvs8JT6JAWdoH9Gk8aWpmEvmrPPXOZN+kNCmYSlklFBF5WBBlBDu23+97MQd6tdOGEcMNYbYMElcpLvc21g+HgBzMOZReKvgE= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(23010399003)(376014)(7416014)(42112799006)(38070700021)(261021135927099003)(261021123027099003)(260925022911599003)(260925021911599003)(260925021311599003)(11063799006)(56012099006)(261009223027099003)(261028144727099003)(261021121427099003)(261026121527099003)(261026140227099003)(261022105027099003)(10067099003)(18002099003)(6133799003)(3023799007);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UWVrcHpjalJRaTd4em8vb0ZuNHpJeXdlb1N0aWRkbE94MjZ1SFJzYnVWMVdp?= =?utf-8?B?eWVoOGtxaTVJblpvYnRoRXhObW1zaGhtMXFTWGl0dkptUnZReUVwVHh4MUo5?= =?utf-8?B?K29uSkpjbWFUTWJmZ09zQU9OOHhBVmYzYnlNZDdVUUtOVm5BYVFta3dYRi9W?= =?utf-8?B?c0k4NGpyRGhUdVJLMDQrRjA3WVRCbDJPbDg1TDd3djM0alN1a2llNEtjeEdn?= =?utf-8?B?d0hjWm5zcVhaWUNPWHV6eGJFbHI2c2Q1blZCdVN1Zy8xS1RlOVNoK1VBWkkx?= =?utf-8?B?ZU1mSldJQTJiTFpJWGZXZHpXU3ZGQ04wQTdYTDhweTVNZXh2eFlFU2E3aEl3?= =?utf-8?B?bHdaVjNISld2ejJWYk9HZTZOckVyQktyUVZWVTdsd1V5V3B2bk1veDFXd3Bh?= =?utf-8?B?NXJiTUxtK2d2VHpiNkE2aWkrcWhKcUFrc1JQZHJOcENjNTMrS3E0Y250NWZp?= =?utf-8?B?SVFHOTNHM3ZBT2s3MlRkMWc5TFMxMzZBd2tXNXZ1YjNHVkVTRDhhbUZ4elhJ?= =?utf-8?B?dUkvVjBIS1NHVVZraUZyeGhCbzR0ZG5vbnM4WSswa0QzN3BtUEFaRlgvamZF?= =?utf-8?B?ZGJsUHhkaEtFOFlITFVMSjlPTDRhSy9Wb0xnR1JLNUdVMk8zRGNYcXZDQTd2?= =?utf-8?B?MXZxWTNmV2gwbkNJZ1dwYStTT3lOeTgwUFc1d1NEWGlpdHJqRytLSjQvM2c3?= =?utf-8?B?NjBKc29YMzJyQVpWcWdPcnlYTVloa05JZTRYeHNiSXBBejEzWi9VdEdsWmcw?= =?utf-8?B?RVptdVovbkdxeWd3RWI5bkFmUTlMT1N4STA0elB0emJiT3IySUlhUEV5SmZ2?= =?utf-8?B?c093cFdFME9tdEw2eWhYRkhXSXRHNk1EWWNzSTNUM0xmdEVDVlJDMjZDV2xq?= =?utf-8?B?aEZVNnArRnNQWGRDWWxGUmpvOGgzM0JxSTdnSWJWUzlVcGxhS1lrWm1EbitD?= =?utf-8?B?cmVXTTdlenhqSE9lRGtoV3pvWHBxOENjNDB6Y0p5dktHTmRJQ09zK2lsL2Ez?= =?utf-8?B?dktURVdnYnNlWTRlS3RnWld5NU9aSFhJV2ExSHg3eVVjNnZaVjNTYzV4cnF6?= =?utf-8?B?L2JaV2ZwRmhhNzN1NEdmYnorUkx2UU5RTTlFZWxpVkI3U2hHaSs2bFltSXVz?= =?utf-8?B?ekllN3k5bDdDbHZaR0ZGeEprWkNmblprd2NWeXhjV2w5WUI0YzRtdk9ZWFhT?= =?utf-8?B?cy9oc1BWRTlTWlpMTkVFVldIVGZNdmQ3UlpTWGFoUW1NaFFoVnB6T1ROZlJh?= =?utf-8?B?M1M1TFF6clE3TjJ3ZWMwK1FSK2c5aDIzdFl1dDRLSThCYlFDUEM1bGdsdFBO?= =?utf-8?B?UHc0L0xDYjRubXoxL3lkS2ZGSzZrdUVTYVRhbEpYWjdTN2h0VVZuUVNqeWhp?= =?utf-8?B?QlFoZldHc2JLRVVaYlBYYXBvNlFkc3RsWU9BSGJjOEJyQUdzVHRjQkJXa0c4?= =?utf-8?B?NUFVYmwreVhQMHBvRUJxc3dEQjR0Tmgrc1N3UXNaWldlLzZKNXIvMnF6cGJv?= =?utf-8?B?YmtFVHNEVWdsWG9IMjBWS25IOXN6dk8vRlRwS0d1UTR2K3BlV2pZaEh5QjhY?= =?utf-8?B?aDkrUVc4d1I0c3A2RDc5TnhVRHpJdFZTL3FYTWtLZmJBMXJ6ejhUT3FKWjQy?= =?utf-8?B?djA1NjNsdjVlaW12bm1NcDAzRzVzaENhUVB3NlB5TGpmdS9VR1R0RlhyWkZG?= =?utf-8?B?c1VtaExPazVDZEZVNEowV3BzbGZ3ei9LTkVjTCs5RVFGQVQvQVhqTWhsNlRy?= =?utf-8?B?MklFLy92QWVnSDNxRUE4S0JRemNDV1RxZEZwUFRrR3pJKzZYMmlhZ21aMjBK?= =?utf-8?B?NGVrVDhMYlRwSVc5SnBtcXUwTHBoVHVZWHZqY3Nabk5HUXNKeXhONGdCSkVs?= =?utf-8?B?S1lSc3JzV0IySlB6MkNyM3NSVjFZaHFqOWtBMDlBUDQ0REsyMzZSMzkyREVX?= =?utf-8?B?dlhPVGZwaU1GWkQ2dSthdDBqWjVLc1p3cFFTYnU1bTJLYm95YnI3MU0vMVdn?= =?utf-8?B?YjQ3Um1QVHFjQldkYXRKVE41R3ZMTENKMXh6U0p0Z2I2WHdGUDgvWDdTNnVp?= =?utf-8?B?QThiYXlmd2o1bTN3dTFtK2FmOERNWCtTQVl0UlFhdGc5THRkSTFSOEIwQVBk?= =?utf-8?B?MnVlODIwZFFqM0lpcFhBekFWNWtjK051S3RVckJZUlV6bDQ5cWI1RW1VWmRY?= =?utf-8?B?SUE1dzNITHBPamdNdFVGWHVaZGlsU2tQQ2haSWZIODNwamo2SmdJOEpad0Rs?= =?utf-8?B?MTZsSDJWSFord2EwNW5vZVB3RTNRL1c4bTdDMzJmSHZzVDZFdStiNDhkMzIx?= =?utf-8?B?a0ZVMXppNlRPS055Z05LbnhDam5tcTVNQWtpVHZKSGlxYVVnV3J4Njk0WmJt?= =?utf-8?Q?FSLHmSMRDlddgsTM=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2faa455b-3f3c-4bb4-8d00-08df38d43c10 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Nov 2026 11:27:10.1585 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: RF+fVCbSo7Ys9Z5ToxRXfxIXr93aMCC5kwlL+JOfTnMuh1OMBzttkt1mGJEKX35P1cPnep1Arje47NUVjluyvrKAbnry7W6dpKOHuRPBc3M= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9680 X-purgate-ID: tlsNG-c201ff/1793618834-247132A1-66AFC90A/10/78276251493 X-purgate-type: spam X-purgate-size: 6080 X-ZohoMail-DKIM: pass (identity @epam.com) X-ZM-MESSAGEID: 1793618868193158500 bsearch(), memchr(), strchr(), strpbrk(), strrchr() and strstr() all accept a const pointer/object but return a non-const pointer to the matched element or byte, matching their standard C library interfaces. The casts in these implementations strip const so that callers searching a non-const object get back a mutable pointer. Avoiding the casts would require deviating from the standard C library prototypes of these functions, so document these uses as deviations instead. Update docs/misra/rules.rst to note that this class of double-use library functions is deviated on a per-function basis. Signed-off-by: Dmytro Prokopchuk Acked-by: Jan Beulich Reviewed-by: Nicola Vetrini # automation/eclai= r_analysis/.* --- Changes in v3: - reword "public API" in the commit message to refer to the standard C library prototypes instead - fold strchr and strrchr into str+chr in the ECLAIR config - add Acked-by and Reviewed-by tags Test CI pipeline: https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/3017261694 --- automation/eclair_analysis/ECLAIR/deviations.ecl | 8 ++++++++ docs/misra/deviations.rst | 9 +++++++++ docs/misra/rules.rst | 6 +++++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/= eclair_analysis/ECLAIR/deviations.ecl index c7a800c62f..296340bb4c 100644 --- a/automation/eclair_analysis/ECLAIR/deviations.ecl +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl @@ -451,6 +451,14 @@ write or not" -config=3DMC3A2.R11.8,reports+=3D{safe,"any_area(any_loc(file(hvm_guestcop= y)&&text(^.*__hvm_copy.*HVMCOPY_to_guest doesn't modify.*$)))"} -doc_end =20 +-doc_begin=3D"Functions bsearch(), memchr(), strchr(), strpbrk(), strrchr(= ) and +strstr() accept a const pointer/object and return a non-const pointer to t= he +matched element or byte, matching their standard C library interfaces. The +casts in these implementations strip const so that a search of a non-const +object yields a mutable pointer. This use is deemed safe." +-config=3DMC3A2.R11.8,reports+=3D{safe,"any_area(any_loc(file(^xen/include= /xen/bsearch\\.h$||^xen/lib/(memchr|str+chr|strpbrk|strstr)\\.c$)))"} +-doc_end + -doc_begin=3D"This construct is used to check if the type is scalar, and f= or this purpose the use of 0 as a null pointer constant is deliberate." -config=3DMC3A2.R11.9,reports+=3D{deliberate, "any_area(any_loc(any_exp(ma= cro(^__ACCESS_ONCE$))))" } diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst index 76be6b3251..bee4686675 100644 --- a/docs/misra/deviations.rst +++ b/docs/misra/deviations.rst @@ -440,6 +440,15 @@ Deviations related to MISRA C:2012 Rules: readability. - Tagged as `safe` for ECLAIR. =20 + * - R11.8 + - Functions bsearch(), memchr(), strchr(), strpbrk(), strrchr() and + strstr() accept a const pointer/object and return a non-const point= er + to the matched element or byte, matching their standard C library + interfaces. The casts in these implementations strip const so that a + search of a non-const object yields a mutable pointer. This use is + deemed safe. + - Tagged as `safe` for ECLAIR. + * - R11.9 - __ACCESS_ONCE uses an integer, which happens to be zero, as a compile time check. The typecheck uses a cast. The usage of zero or= other diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst index 5f9fe4c860..7e191a0d4a 100644 --- a/docs/misra/rules.rst +++ b/docs/misra/rules.rst @@ -475,7 +475,11 @@ maintainers if you want to suggest a change. * - `Rule 11.8 `_ - Required - A cast shall not remove any const or volatile qualification from th= e type pointed to by a pointer - - + - Some standard C library-style functions are inherently double-use, + accepting a const argument and returning a non-const pointer into + it so that callers searching a non-const object get back a + mutable pointer. The casts that implement this are deviated per + function. =20 * - `Rule 11.9 `_ - Required --=20 2.43.0