From patchwork Thu Sep 21 13:08:05 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 23057 Received: (qmail 36503 invoked by alias); 21 Sep 2017 13:08:22 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 36488 invoked by uid 89); 21 Sep 2017 13:08:21 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.3 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: sesbmg23.ericsson.net Received: from sesbmg23.ericsson.net (HELO sesbmg23.ericsson.net) (193.180.251.37) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 21 Sep 2017 13:08:19 +0000 Received: from ESESSHC005.ericsson.se (Unknown_Domain [153.88.183.33]) by sesbmg23.ericsson.net (Symantec Mail Security) with SMTP id 94.07.21299.0C9B3C95; Thu, 21 Sep 2017 15:08:16 +0200 (CEST) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.33) with Microsoft SMTP Server (TLS) id 14.3.352.0; Thu, 21 Sep 2017 15:08:15 +0200 Received: from elxacz23q12.ki.sw.ericsson.se (192.176.1.80) by AMSPR07MB311.eurprd07.prod.outlook.com (2a01:111:e400:802f::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.5; Thu, 21 Sep 2017 13:08:14 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH] Fix sometimes-uninitialized warning in gdbscm_value_address Date: Thu, 21 Sep 2017 15:08:05 +0200 Message-ID: <1505999285-22226-1-git-send-email-simon.marchi@ericsson.com> MIME-Version: 1.0 X-ClientProxiedBy: HE1PR09CA0084.eurprd09.prod.outlook.com (2603:10a6:7:3d::28) To AMSPR07MB311.eurprd07.prod.outlook.com (2a01:111:e400:802f::23) X-MS-Office365-Filtering-Correlation-Id: c20b21c2-25b3-42e6-2d23-08d500f1d1a1 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:AMSPR07MB311; X-Microsoft-Exchange-Diagnostics: 1; AMSPR07MB311; 3:IwsyhS3WQNN6t4GSdFa0R45WWA/abCKccoZ9U5rM78AMxWsdk+BiqyU57gdlDa2fTDhwcLLf2WB+OSASNi1LhJUXLHvtYx3cuxCBXmUGXAtHeMPyHU/uWX607DzvcsEjWbZHimRHiOH9Ibupahq5zc+wkoBPFhB0x3IOpRRltHH/XP/dw516md4Utqf9jIqEfv23q23quPydsWDzb3N2pFFd4vRs6yY7DjP3YzkI6/exT6vvXWerj0p3aHTdElKQ; 25:lxrtCZ9C9C5nqM+4ERz4+AmzmCVttrmZeUwxrytOflsGiEft6Ht/6k37zgZ5oSAnWZXeiiv47Po24BZUjptiKdqAwaC6Bby4kgeEU8XC/4DEz26T7wCoUz6S7NfTouI1IPB+obU9qiJh7MJf/MkqBO8d0dfN4bXYoYR6aun5IirgAf6DNxD1DAiSAnVoLE9efhg7WVDmt6UQL9he2vSsRE3O/9sIP3cI027VUbVBphU4f977V8TPYGUzgTw3nOPPJJxrodDmepXDBtH0f1nrfhRvBQUAfP1xrQ5iym1OfZVboJSjNT5rcicuQxuSMRibiPLvncNgBXkuhonGNsvNAA==; 31:87EeSA2CAN038LsUWUw/6zZAnpWombhdEo9CptyhErkb1Dpx8uxGN8Q1qamCL3M3SkkiP4pEpF7bY+2WJKqoImgBUKNkjoAEw9q/yI1eWvXc8T6BO/yMy4i+KOKuj7dZbIbkpom4g1dVWbIV8fy7487fwxqqemxbIoIY/Byy0ENze4mCLGUW8vgMdc7IVGLnYWTmlldzDdSj7p0ocQptj2fJt/OSHRrmb3FEbvlGO2E= X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AMSPR07MB311: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; X-Microsoft-Exchange-Diagnostics: 1; AMSPR07MB311; 20:+3fvBz7j6H5vPa70N6fd6zs1lwJ8cM+FAGUiCOeLZFzenIT18iA2UvQgnYfn0WmVDzZ+kdqudIrlYQL06OqiWkLEgiAZesaRuDsWQqiN+1Cg9GV4S7L2Vv1YaeH3DvynqUHsyOTD+IVsJVZJe8mjRSYS9mfXqkxZLPcUx2mIqm3nqAaFoPo47gwgibP3m/rjXQZGjCr9vrQeFVgTiIJ9Hq8BVIGDysS52NTWu25m/0VsevBnc8K+TV3ok4N38+iFIWkRHEP5VFHxX+2LjXOArTbWv92E2I/enyO2rJcMcgBHFKl5etcMooSTRn4ImonURCvYlCYhlLtCJYl/v6O0csQCcIkyygYMmPZ0RfJj40tjb1CBdNvq5WJbTkvCtLcSX7dxZadbVkFZoCl+3sDhrCax/693/zIs0rRmnRnlzf7r91tTe/QQ9YrznOFmTlZaxTlQLq7xY9BaZ0v6KH9l7QvgsBvSNNu48OvZCVM+KPg0HpIbKal4FS2ThAzLwBL4; 4:W5nm7KL1od09o6SKpkjo5+lRjesOkdZay7bjgPk9+bQOq95b+KAY6tCuHU4Nhpok3kzOjRbw61zl23z6ioP2Ut+KMsNJz4FHQjZw9Fmh8DKqug8ccKQodE37l7hOEv+E3zO4Eif4M1kYrtllia4z78rkzpxP5JUi+UQpBsUhvGGIAn7Q2VIT4K6hpovTQ3DhgJTE4GpP+3wJdLjFLMa8rA39L0+PVYxsaAT2l4Vn+JqWUIHzmVPiE0hPcIoQIFlV X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(3002001)(6041248)(20161123558100)(20161123560025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:AMSPR07MB311; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:AMSPR07MB311; X-Forefront-PRVS: 04371797A5 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(346002)(376002)(199003)(54534003)(189002)(81166006)(478600001)(33646002)(16526017)(16586007)(8676002)(8936002)(2351001)(81156014)(5003940100001)(50466002)(47776003)(3846002)(107886003)(7736002)(6116002)(189998001)(316002)(48376002)(2361001)(50226002)(97736004)(305945005)(66066001)(5660300001)(6512007)(36756003)(106356001)(50986999)(105586002)(6916009)(6666003)(86362001)(68736007)(101416001)(53936002)(6506006)(6486002)(2906002)(25786009)(4326008); DIR:OUT; SFP:1101; SCL:1; SRVR:AMSPR07MB311; H:elxacz23q12.ki.sw.ericsson.se; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AMSPR07MB311; 23:BXdtUw97QMBHCkIqyiSpOjxKfnIO3aIkIRmD2vT8+7?= =?us-ascii?Q?IvXUS8Wshyf3gMXaAXvMp+VdDTCrwu8u2zWu+vRZc/HDpWRFCmOrDTRTtunf?= =?us-ascii?Q?uy2/jBhCa62uAwMEasOmlYRV1iBeXPvdYLrGQXfT788GOnVrTBYis8dMnT57?= =?us-ascii?Q?sag2GCb1KJPxIdBm/J4Y8HYwDvaz1K1DeF/NFOBzxcIiNaEYlScNrrJEB18H?= =?us-ascii?Q?z2twF1eQxJoBIT2V2NRJmgJgmkbSIYS+W/8bomN4Duym+KbvihuWxVpEPaGt?= =?us-ascii?Q?kbrPBPxfaF7VegJSEv0e/GJ8Y7/pWPrFG27AouTCqV+BkWBwxk6dlOSdm7aT?= =?us-ascii?Q?5eaa9suDhzlcNxxsIFaHigfSKvvVu1nIuOxXNSzGWbhAHevcyAEIwqkxcVLS?= =?us-ascii?Q?LcFszbiSCjdmKfExDrklPo1fbdBJCJUwD1ssq2/Y2esWNXHNK4CcrR59S5+3?= =?us-ascii?Q?yyS7qKSyQqocpSsnbDWer8qdBkGX9zWeIEEEY7iTuLDdi8ziNFcZhXtdddae?= =?us-ascii?Q?uovqIbzeJURxo18075F90IXSjVS9nbudwi3SVpuNMGQis9nTnYknaLg3IAZo?= =?us-ascii?Q?Nl3q0ipzQJBIii09J97XwK9pibM7ncBhdHOtj/5aRqf9FwcV3bHApUEYnubC?= =?us-ascii?Q?vUDJb4ulrK3AZpCjvsx/AwLsSQcg49i8tMJeorV1eORPZyt3i3mo3vYWpQ0D?= =?us-ascii?Q?9wjUgowrwSEGY5RpbtW804LS0p1V17LUXk+Po5G09g6xP3xRQx1yPIC4odVL?= =?us-ascii?Q?ROu443WEWLjoj7pZVcBWAY7bI0IAX3QhORC2qRBuig/GiTfAtLtjJMTRxak4?= =?us-ascii?Q?2VX64QICvZKbm0wN5lj0RfN1Nx5hYrOsiUmMg9uDCIBrV3jrlCBULfeTNALb?= =?us-ascii?Q?fVPuGWRlx7HzZ7lZr9zujQZFl4vesjybFjA5wUG/l+v3wqEesScZWMdkQUmC?= =?us-ascii?Q?Wjya7GfeT1RpuwI6TbgrdejbsM+/WWxGOQAWkmmJWhW+ptD0RGvLtnPO0YFu?= =?us-ascii?Q?tXfhU6MZ6YRUjIagIDkdinpCb8g1FKAab6lnELNgEYYOUiBWB1o8oRMeQVA8?= =?us-ascii?Q?kwxI+mBWqS1zn+p3l0CQ/jCPOXbRcC27EVa1O7TjeTKJA9PNkukWlhtRwa+7?= =?us-ascii?Q?ygpQb9IpA=3D?= X-Microsoft-Exchange-Diagnostics: 1; AMSPR07MB311; 6:2hNPsM38Xh+HayuCY4MBMs2/U7A8eEaaQx+5fA1htvBihFbZ+ERRtDS1qHNeUYcTjFaBqKWGciBIHr02wEBW77iw9x/930k30FP24Oojh6tBFkP8YrTjMr8UQIkYv3XKUGzk+tAJoxejgSTa6UR+2/56ZW3dYfKtPnvWdYx+1cdes/vy2duhRdQmStM4rJkk4HucQBaqavrrx0ehQ5inMSDz1Rl4E+/gTD8kPGpNU/90ucWCyY6AA6J2WWqzADCtE8Q7dkaHiBODLrFOlUA3HdYoNPTfvr+KfRwJf99m/VloRUvY774floRsa3esjr1uuayVxHD7dI1ckQZABU/4vw==; 5:2US+1xHS+qCY0gzzwEEtUp2Qxj/OJ/yRHWhsoTeydMXOxzJL/3M6OuJddqKiejkIgNzj60uHUOVCf863gk/G/6mFPjGaZej43AI+mxnnX0SIDnB5/OH7vDIGvX3VDd+WMpHKxh4g/xCCm4AivaL+9w==; 24:g8jqjDofAo4rn/MhKVkRbssifr/pQyzoKpVxnkCMGfmv29bZNYeULu2PT9YqFAeIn1bMBjWGy7aeBs5q6OYA1N5ROVtfgpbAEDITILvrQQU=; 7:+iDQ2nzk38QFFNNxtJksCrJaYw4qkzp1oib53++XvsxUkc0S6zsBF77mQXra1ekMw5K2HlNkLj1hnNpPSpL8BfZa2MfLsbHZPnf/gKGUu4zHHN9MZPbbzmaa+3TFdUp+S4ORAAUcyXMZhRCHAA3+toX4mJOjfQcDFcBq4SSdxJyQP49/gl/413/CNRi3VK7bcN00M5BiLjKBfFtZNRY22U1Aw0YG76BODRGzvFdJUmE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2017 13:08:14.1599 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMSPR07MB311 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes I am getting this warning with clang: /home/emaisin/src/binutils-gdb/gdb/guile/scm-value.c:439:11: error: variable 'address' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized] if (res_val != NULL) ^~~~~~~~~~~~~~~ /home/emaisin/src/binutils-gdb/gdb/guile/scm-value.c:444:32: note: uninitialized use occurs here if (gdbscm_is_exception (address)) ^~~~~~~ /home/emaisin/src/binutils-gdb/gdb/guile/scm-value.c:439:7: note: remove the 'if' if its condition is always true if (res_val != NULL) ^~~~~~~~~~~~~~~~~~~~ /home/emaisin/src/binutils-gdb/gdb/guile/scm-value.c:427:18: note: initialize the variable 'address' to silence this warning SCM address; ^ = nullptr We can get rid of it with a small refactoring. I think it's a bit cleaner/safer to initialize address with a pessimistic value and assign it on success. Then there's no chance of using it uninitialized. If I understand correctly, the NULL check on res_val was to check whether value_addr threw, and that if value_addr returns without throwing, the result will never be NULL. If that's true, we can skip the res_val variable. Tested by running gdb.guile/*.exp locally. gdb/ChangeLog: * guile/scm-value.c (gdbscm_value_address): Initialize address, get rid of res_val. --- gdb/guile/scm-value.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/gdb/guile/scm-value.c b/gdb/guile/scm-value.c index 0dc6630..3732666 100644 --- a/gdb/guile/scm-value.c +++ b/gdb/guile/scm-value.c @@ -421,24 +421,19 @@ gdbscm_value_address (SCM self) if (SCM_UNBNDP (v_smob->address)) { - struct value *res_val = NULL; struct cleanup *cleanup = make_cleanup_value_free_to_mark (value_mark ()); - SCM address; + SCM address = SCM_BOOL_F; TRY { - res_val = value_addr (value); + address = vlscm_scm_from_value (value_addr (value)); } CATCH (except, RETURN_MASK_ALL) { - address = SCM_BOOL_F; } END_CATCH - if (res_val != NULL) - address = vlscm_scm_from_value (res_val); - do_cleanups (cleanup); if (gdbscm_is_exception (address))