From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (EUR05-VI1-obe.outbound.protection.outlook.com [40.107.21.58]) by mx.groups.io with SMTP id smtpd.web12.1017.1593534610731398210 for ; Tue, 30 Jun 2020 09:30:11 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=qyXB6nlx; spf=pass (domain: arm.com, ip: 40.107.21.58, mailfrom: tomas.pilar@arm.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1Ibek7jVYCuSXF/N8Zxi7SgVozZ8rdGeH07A2cAqsrc=; b=qyXB6nlx2xRxIQeoDWagG0krKFExzzlbArxAVhAiRQMjFB7QyK6Vg6WbqKl7cQMRxKt1Sz7kM6LGpfxmx5aZif1aicFVD8Ck6+W5F01QyIV9NpoUHmn2llCFuw7LFya05AZKLWut+c1pkhR5EVaEmBOff9d5fwVh+2ylvh9bxAk= Received: from AM0PR10CA0082.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:15::35) by AM6PR08MB3701.eurprd08.prod.outlook.com (2603:10a6:20b:8b::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.20; Tue, 30 Jun 2020 16:30:07 +0000 Received: from AM5EUR03FT005.eop-EUR03.prod.protection.outlook.com (2603:10a6:208:15:cafe::92) by AM0PR10CA0082.outlook.office365.com (2603:10a6:208:15::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.21 via Frontend Transport; Tue, 30 Jun 2020 16:30:07 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; edk2.groups.io; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;edk2.groups.io; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT005.mail.protection.outlook.com (10.152.16.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.20 via Frontend Transport; Tue, 30 Jun 2020 16:30:06 +0000 Received: ("Tessian outbound 90a05f5dce10:v61"); Tue, 30 Jun 2020 16:30:06 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 5527f0810a4e8214 X-CR-MTA-TID: 64aa7808 Received: from bcb1e0428d6b.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 02B08998-BDF4-4BE7-B495-B19611E3C749.1; Tue, 30 Jun 2020 16:30:01 +0000 Received: from EUR03-DB5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id bcb1e0428d6b.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 30 Jun 2020 16:30:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=S/46ntujzijj4LNRzLG6lNs6/j5s5wAuEjkQAxTqiOcY33mGP3fTqOPlC8EOo88Jierre75ZhfBjGLY1/6e2TiM2LdnZEUKtuQo4rsIiZhHmW/b/x+a06ix1FA6j50lh6WkO+1+Yyvu6MoESj3ANWh5bCGGtwOwGZdrvZ8Dgc99Ur4UzB7lOjZG9K2w90P3LSvNwTq0rYjH5hvkqXJNebsbv8kYZXpgssk3IC4DF77gscoyZOtK+J8T24sP/ciUMcBStl1pK5H+Q2t6DFGrKuhi1/45DN/yQwdobLyswTgXrNvayvR8aE2WaubzC1Zl/2olDgIFSk6qohEqcStUFsg== 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-SenderADCheck; bh=1Ibek7jVYCuSXF/N8Zxi7SgVozZ8rdGeH07A2cAqsrc=; b=f0JBFXU4BXZj+GRlRu3UgsvJPA/otUYe5KawYvwjcOxQB3aFxxYSHhkDkQNopBUT1lVi1qP5+P4n4zS4NMznItfRbaxH+oTGbAIGjK+K+8X+LSZnUEtkWJUj6bQoAw0E/dxoO7zYEvXon51laoZKV/8PTIcZLCmLWrZsvxNzrLZr9RytklJGkkcQrqJqppBeKaitAPoy7N+regDxJt/mK45vEsIHME8ZR8Z0CSmN9tqmQguby3AxxhyfslIczuGpOAcdMZVpLA2IKeeFEgkVUsdAMlzFuaw4HVIh30ELqTQJp7rLbTPV8dd7IuIYKzv6FvkQLyRc/B4PASjdCLKNWA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1Ibek7jVYCuSXF/N8Zxi7SgVozZ8rdGeH07A2cAqsrc=; b=qyXB6nlx2xRxIQeoDWagG0krKFExzzlbArxAVhAiRQMjFB7QyK6Vg6WbqKl7cQMRxKt1Sz7kM6LGpfxmx5aZif1aicFVD8Ck6+W5F01QyIV9NpoUHmn2llCFuw7LFya05AZKLWut+c1pkhR5EVaEmBOff9d5fwVh+2ylvh9bxAk= Received: from AM5PR0801MB1844.eurprd08.prod.outlook.com (2603:10a6:203:39::22) by AM6PR08MB4470.eurprd08.prod.outlook.com (2603:10a6:20b:b5::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.21; Tue, 30 Jun 2020 16:29:59 +0000 Received: from AM5PR0801MB1844.eurprd08.prod.outlook.com ([fe80::c865:b428:8da0:7274]) by AM5PR0801MB1844.eurprd08.prod.outlook.com ([fe80::c865:b428:8da0:7274%8]) with mapi id 15.20.3131.027; Tue, 30 Jun 2020 16:29:59 +0000 From: "Tomas Pilar (tpilar)" To: "devel@edk2.groups.io" , Pierre Gondois CC: "bob.c.feng@intel.com" , "liming.gao@intel.com" , nd Subject: Re: [edk2-devel] [PATCH v1] BaseTools: Add gcc flag to warn on void* pointer arithmetic Thread-Topic: [edk2-devel] [PATCH v1] BaseTools: Add gcc flag to warn on void* pointer arithmetic Thread-Index: AQHWTvK8GyCk/ln5KkaLBmJ/X/DHyajxVzlg Date: Tue, 30 Jun 2020 16:29:58 +0000 Message-ID: References: <20200630152416.28240-1-pierre.gondois@arm.com> In-Reply-To: <20200630152416.28240-1-pierre.gondois@arm.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Authentication-Results-Original: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=arm.com; x-originating-ip: [81.111.29.163] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: e7f4c8d7-5903-4dae-c3c9-08d81d12d98f x-ms-traffictypediagnostic: AM6PR08MB4470:|AM6PR08MB3701: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508; x-forefront-prvs: 0450A714CB X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: U7LRwCsoGmfV5SUHrl8fNgtwiEL8l3gHSy2YFcqBJJysgk/p/LFjEdx/3Y0BI/KRAktSdl+HTHE2CiXjdSPd70+jOHeFKxybOKVWiHCXWi3y/a/IsJvDrj5PGb/7hipH9Qoo4h+Ct4+RF6t9B/pM5B8jcTyHUEqAEoGwkfeShMMjWbZDN+VbhTq/MqQPTR5ylOmRBLx2L4xaEw5d0ta7xAR3uYQPFEqbkXbFVsjf5ShBviAfAw8nmpZGruysHJtdxerblNrbohLDSl5WuTV2eohe145iKLuD/gvKe9JRIm9H1bZ03EGD5ob2B9/suPPvutMz2F4SX5H+2YilVwuupPviYr4Uar5UiUyx6y3cbEerxAVhbjt//ijrLMKmYsnsulVR6+9/NuVpvnSx+YWNBg== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM5PR0801MB1844.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(136003)(396003)(366004)(39860400002)(346002)(376002)(2906002)(4326008)(83380400001)(316002)(966005)(45080400002)(110136005)(6636002)(54906003)(9686003)(55016002)(478600001)(5660300002)(53546011)(86362001)(66946007)(76116006)(26005)(8676002)(7696005)(64756008)(66446008)(66476007)(186003)(66556008)(71200400001)(33656002)(6506007)(8936002)(52536014);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: LTUYUOpsN9baM0zJRIfS9diNTN5V87l282PzCxwG3q0aCMINC+LVATltqgYtMbfyIWZzQgKfvCgRMd3T5UnXc/OmzkNA+IjQVICyflGle6LRSDXEtymsZMKx3W3gpvVPUwR+CEQEgKL//4biF3pbi2qwOC2PoxMjtqOzzucAy6ifGgMAe4jcsTMsqq/cEOl2dNW5CGLglaVfz+T0Wao2UWgZf5dtAt3i8wgTL+XAOskpAyamN7O7ZuMfDIkLDjg0xJiJkd1LQSnnJ1DW5z1yqIw/V26ctrSL+V0XpMdbb50vOdQEc+kgSEhY8V5WZmA9UALXoMxg8n+kecJC1HkDIWXCKUI7ZpPyoGfGgzxeHi2b4xj0RAJdnjC6KC2d+WggDs1yTvtRMuzgeJgKJHJOT0wE2Y4TadF875TGvu46bXgXljHAYPpWyx0iZSYHiJFmhTqVqByA8yd1nwCr2/HZKj0vIECjL0bkaP8Jq+YbN1c= MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4470 Original-Authentication-Results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=arm.com; Return-Path: Tomas.Pilar@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT005.eop-EUR03.prod.protection.outlook.com X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFTY:;SFS:(4636009)(396003)(346002)(376002)(136003)(39860400002)(46966005)(33656002)(4326008)(82310400002)(83380400001)(6636002)(5660300002)(336012)(81166007)(70206006)(70586007)(186003)(7696005)(52536014)(82740400003)(45080400002)(8936002)(8676002)(478600001)(356005)(966005)(316002)(6506007)(110136005)(53546011)(2906002)(86362001)(55016002)(26005)(9686003)(54906003)(36906005)(47076004);DIR:OUT;SFP:1101; X-MS-Office365-Filtering-Correlation-Id-Prvs: 15ac11c6-c258-4709-1d6c-08d81d12d4db X-Forefront-PRVS: 0450A714CB X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0PUQbXkkpv2ZoZwG1wJpmL0fJ4safokCfBLozcNuLY89ab0U/U6M8zV0Kd0Y9QK0dINNI4UkPfrPCo8cd7X9buPGSpst07WHQeqbpMb4wpl3XysOJfpBlYTGp+I33/vNzpLGHd4r2/G/MUlM8dsDo1sEarYns7qASmlSwH6xYnbhX2N4WQNfM3YeRMO7Npg0qT2WD519KCv5EWEodwNp8cYehV0GBBEA0Zvc6U/rnrb1sAwq4FS8zH7YVe1P9S0JtS+nDfLraR6zHQtqiGi3MxlLKJLoDgalJfXrPRuJvvG7m6AqM1uDgTifZTnPaL4p1M5sL3ljI0C8vbxkAZ+cZrF7nE9ocxx/ZMvI1dSb62LQRq/bOSG4HT5ujRq3HOiiVNCTbtgxmBlK4H6d0nTh62zNK/IM+jNhHmGM/JjDwKNBmtIxEN8OmYcj3+Yfwr1IQZTDQgHxs1aPWy5BLK5saZcTi4TOh3yrtqD0TGK0tzg= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jun 2020 16:30:06.8979 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e7f4c8d7-5903-4dae-c3c9-08d81d12d98f X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT005.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3701 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable It looks like GCC5_X64_CC_FLAGS pick up GCC48_ALL_CC_FLAGS as the lowest le= vel flag list, so this change will not apply to compilations on the X64 arc= hitecture. That said, I suspect that X64 architecture will likely have the biggest is= sues with disallowing void* arithmetic, so we either: 1. Mend the tools_def to make GCC48_ALL_CC_FLAGS pick up GCC_ALL_CC_FLAGS,= rerun tests and CI to make sure this change does not break large parts of = existing codebase. 2. Move this change to ARM/AARCH64 low level CC_FLAGS lists to explicitly = exclude this change from X64 architecture compilation. Cheers, Tom NB. I personally like the void* arithmetic GNU C extension - I like being = able to combine the implicit pointer casts with raw pointer arithmetic. But= I can appreciate if we want to keep the codebase strict. -----Original Message----- From: devel@edk2.groups.io On Behalf Of PierreGondo= is via groups.io Sent: 30 June 2020 16:24 To: devel@edk2.groups.io Cc: Pierre Gondois ; bob.c.feng@intel.com; liming.= gao@intel.com; nd Subject: [edk2-devel] [PATCH v1] BaseTools: Add gcc flag to warn on void* = pointer arithmetic From: Pierre Gondois By default, gcc allows void* pointer arithmetic. This is a GCC extension. However: - the C reference manual states that void* pointer "cannot be operands of addition or subtraction operators". Cf s5.3.1 "Generic Pointers"; - Visual studio compiler treat such operation as an error. To prevent such pointer arithmetic, the "-Wpointer-arith" flag should be set for all GCC versions. The "-Wpointer-arith" allows to: "Warn about anything that depends on the "size of" a function type or of void. GNU C assigns these types a size of 1, for convenience in calculations with void * pointers and pointers to functions." This flag is available since GCC2.95.3 which came out in 2001. Signed-off-by: Pierre Gondois --- The changes can be seen at: https://github.com/PierreARM/edk2/commits/831= _Add_gcc_flag_warning_v1 Notes: v1: - Add "-Wpointer-arith" gcc flag. [Pierre] BaseTools/Conf/tools_def.template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.= template index 8aeb8a2a6417e41c5660cda5066f52adc8cc3089..fba71665d6ade4dad08a5a0c34= 3f357fd413a8a4 100755 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -1,7 +1,7 @@ # # Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
# Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved. -# Portions copyright (c) 2011 - 2019, ARM Ltd. All rights reserved.
+# Portions copyright (c) 2011 - 2020, ARM Ltd. All rights reserved.
# Copyright (c) 2015, Hewlett-Packard Development Company, L.P.
# (C) Copyright 2020, Hewlett Packard Enterprise Development LP
# Copyright (c) Microsoft Corporation @@ -1918,7 +1918,7 @@ NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG =3D --add-gnu-deb= uglink=3D$(DEBUG_DIR)/$(MODULE_N *_*_*_DTCPP_PATH =3D DEF(DTCPP_BIN) *_*_*_DTC_PATH =3D DEF(DTC_BIN) =20 -DEFINE GCC_ALL_CC_FLAGS =3D -g -Os -fshort-wchar -fno-builtin = -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fn= o-common +DEFINE GCC_ALL_CC_FLAGS =3D -g -Os -fshort-wchar -fno-builtin = -fno-strict-aliasing -Wall -Werror -Wpointer-arith -Wno-array-bounds -inclu= de AutoGen.h -fno-common DEFINE GCC_IA32_CC_FLAGS =3D DEF(GCC_ALL_CC_FLAGS) -m32 -malign= -double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg-= probe DEFINE GCC_X64_CC_FLAGS =3D DEF(GCC_ALL_CC_FLAGS) -mno-red-zon= e -Wno-address -mno-stack-arg-probe DEFINE GCC_ARM_CC_FLAGS =3D DEF(GCC_ALL_CC_FLAGS) -mlittle-end= ian -mabi=3Daapcs -fno-short-enums -funsigned-char -ffunction-sections -fda= ta-sections -fomit-frame-pointer -Wno-address -mthumb -mfloat-abi=3Dsoft -f= no-pic -fno-pie --=20 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'