Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp891550pxb; Wed, 27 Oct 2021 14:34:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw4oZ/xteTnfRBQrYdJXHC9AX5faW7laa9es2vkVrHzFUzz5qjOVPcEaq9YhWBiG55mbPS7 X-Received: by 2002:aa7:c956:: with SMTP id h22mr584603edt.24.1635370483744; Wed, 27 Oct 2021 14:34:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635370483; cv=none; d=google.com; s=arc-20160816; b=XWeAk2s0EbAJWQvV1xydU5O7l4HmdclkTfyGAx3PztAcZXX3w4OzqytIUtmFKUwVgm aCVAOkt1nQP67leYUH8MsG7ONMusesJFVHr1lGm8yb3dxZsF+s2mtVfS8xkW1b2PwKsc 0+1YO4GiQLhexdmjMfA78SwQHBTxwfn8f/2uvJV4tMoXHLWSyLBEc/8/3BbPeQM0GnBV Pqof88HfmP8T2N8w/F2RNvuSQyBvyRRUMItdVnOfJ+vil1nLTPcWMt3YycSSK6CiaIXx l463orscwUWvAl3DIFDqx5GT63aTXyJiHjAYc8s/0nZk1f1P0x6Uj4C0ZjhLWITKpfCj nGXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:content-disposition:mime-version :message-id:subject:to:from:date; bh=iGMgs5wxkXNEQILQgfsIM9vs5ly8Mdb9Ug/3W9jqXbo=; b=ckba9K8pGKiK6X1XT121DEY3FDlL5msKcPTDFJCeggWlmHm7D/dK02csQb0VKVn1qp ZUOi+69CucCon0DUl3dHrlOPw5Z5+NvvNvup3rEMoPqVYMAvCrnvd7C5uLQbzq5jEm0z xMvsSoYWRon92QW3bFmAVPrS8pDEOvR2vRIBW1dsgcr5ZUarNm6AubNJ5PzT+cjY3Yy6 Gsvn0Kq+oWIwu+SmJDr2b4WvjlvcpvtH4xeq6Zl/b4nBusahRrImQ0MnaCcJS2UD5Z/1 EQwose4U1CATwkZh5E1tmTw1wxd98RIPYHlclERQd3ksTxOqdZzZYIOu71ROYhGpgnjc tWVQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v6si1833385edc.284.2021.10.27.14.34.21; Wed, 27 Oct 2021 14:34:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243855AbhJ0UPW (ORCPT + 97 others); Wed, 27 Oct 2021 16:15:22 -0400 Received: from netrider.rowland.org ([192.131.102.5]:53763 "HELO netrider.rowland.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S240860AbhJ0UPR (ORCPT ); Wed, 27 Oct 2021 16:15:17 -0400 Received: (qmail 1331338 invoked by uid 1000); 27 Oct 2021 16:12:49 -0400 Date: Wed, 27 Oct 2021 16:12:49 -0400 From: Alan Stern To: Kernel development list Subject: GCC not detecting use of uninitialized variable? Message-ID: <20211027201249.GA1326060@rowland.harvard.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The following code does not generate a warning when compiled with GCC 11.2.1: int foo; void cc_test(void) { int a, b; a = 0; a = READ_ONCE(foo); // Should be: b = READ_ONCE(foo) do { a += b; b = READ_ONCE(foo); } while (a > 0); WRITE_ONCE(foo, a); } But if the loop is changed to execute only once -- replace the while test with "while (0)" -- then gcc does warn about the uninitialized use of b. Is this a known problem with gcc? Is it being too conservative about detecting uses of uninitialized variables? Alan Stern