From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lf1-f67.google.com (mail-lf1-f67.google.com [209.85.167.67]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9993F17A31C for ; Sat, 27 Dec 2025 14:51:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.67 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766847086; cv=none; b=tf92gc2EXM9QcurRrujXA9MzBz8vEiXGObylSbZETF4dDHt8oOi67jwqIzcKI8z2SObaMwqnsgA6KHupRheBVDa5AxADnXmrxXft0a5KvYByzM1Rsi3XcZeJWnuN7yBY1K4aSpruo72LC919PWMkCa71n4swD0qV3iYk5qa/MdM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766847086; c=relaxed/simple; bh=j8SyGAyZfKbZl/a6r25CdYeE+e9xvvgyWaPH15mAVfM=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=Ii4va4Szooq0ruFNfHWmldXlngxrQXO/i65l9lPNVBKY4/D/l3DJoGrwU7a6ypkP+BA0OaCj2ycbXkDdmLHmpKBqoeMHyUQRh0W1CjaIpvOUM8CINt0cOyEreKwLLEGtht4pJ42VyP8J+ebMH7na28KlUs1ys5463cSaVOslkQU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=i6/yvtIO; arc=none smtp.client-ip=209.85.167.67 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="i6/yvtIO" Received: by mail-lf1-f67.google.com with SMTP id 2adb3069b0e04-5959187c5a9so6885793e87.1 for ; Sat, 27 Dec 2025 06:51:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1766847083; x=1767451883; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=i1NV4oGkSQ++8XTsYpBz/iBSph1QD948iS4Wd1AoGGM=; b=i6/yvtIOXFuAmNmUC9H6T0BTKRHTFJKjydNFaHl38R0NWZgrG9NpvX6HpVPgRyUs86 S5ieSBEHpJVps11u0soqR4c+lUI5AcGT+1nTTGeKTOZB8rcI9Q3imQB8a0o2JamuduJZ 7llzGTMSMC26LHC7th2AXhvannbj2u2isRbuA4qdpW57Fmq1nZ8aGak2dQhXPSsGM1GQ PxuoPrJWHOeIz1AkPuv2OwlOSEeJPszQ3sXJVlmQDT8gxVefD7QRdtoVmEdY4IYPBZHU ChVN3AFgKVbmZJGPxnVNr57YMHXFPIRoYFbxtxyXgU9JeZ8q32R4Cv0ljOjlMgGMli7B 4JGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766847083; x=1767451883; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=i1NV4oGkSQ++8XTsYpBz/iBSph1QD948iS4Wd1AoGGM=; b=Ir0+KyiOVbmJHJX3hnRecjxZf/PamsIT/qDn4YYBaa+u6aW46XqO+Fa7mDa46FcfHM My0FN8PkyGNrDxc9dEuMBoys5DSDN92kgk38d5W82YSVEmDMfVFjudHLTOb+QMGV/wBA /7mXrkDh0nCDl+EYvSy88+J2m5m1pSu3QS+tTFrPNfz2NAvmKucNXu5Cpda/XxFZsuJw U+e/CvD4xfUnFzXBoLKotdOjAOnIi8+/DOi4Waj0EwEn1XN2HX/WiSy4FWkeCh8Oewfz 4XI3NwTLvbR7cXaxg5LSGe3i4tc1vwFWEidFrF2bpMsmDNuTuIcUK0ndNZhqBZZpfM0t 1wBA== X-Forwarded-Encrypted: i=1; AJvYcCX7RMIzfXIAzAxLHdVAm5HxiO9FPMe4mkMlvA7byoFaVQbsDKCeMX8IuH5+4Lg1tF5I+yZhLlq2JNIPPB8=@vger.kernel.org X-Gm-Message-State: AOJu0YxoyYoU8AWqLzs/vzJMutZmCMHR/AGBTxXCYaJ/LmPH/5qNixGP oLZ+RAPUrz3dDsNsH9lMBUqwV6NJLw0e/a166eonsXLGWpOK2kpZcLM= X-Gm-Gg: AY/fxX5I44YF8EXhBRsWa71bNLucn2tW9/VXZnE9nZmY4rhPWM63H/vxQs3lqRAuuJU AaOxFAXF22UfVCaURNXDCBe+lSuOQgtRG3TwmRd+mGMnMkTQIVxxmn1imIr82ziHXWVejtYc+L8 uhb2HQg45dWbUYSXVEjbQWuHAItmNjeuseXkjJHCoBFuWTV8ToCxSnLQs0+5Anl3r9v3tqHRha0 AJHdZg+UD65hulKHz59N+HPU4SV6dBF1dlCFW2J9BjaFDXsXYnrTgl3QnADRUa+die81qtD/9nd eP53unX7y5CruDVqSiWKaFEebnrhsP0zfm+crze3xf5Kju6ul9zPqSY2OyyiLiMmWC2r/y/ey3X qlDKLzJxgkMzFq5rE6xQXd0+KYENFhlItu0O5LMAx2yTIzLZtC3/MEhu9ijI/0QaRyW5gv+xfYJ E= X-Google-Smtp-Source: AGHT+IFITWCqUFrabITrYo1vQh+T6Hzw3ZVjIVADy8Z4iFYe7nyGQIlSeJ5hgj4SPvDzdbPCGpWk6A== X-Received: by 2002:a05:6512:2250:b0:598:f1a9:7c5e with SMTP id 2adb3069b0e04-59a17d492cdmr7608423e87.2.1766847082286; Sat, 27 Dec 2025 06:51:22 -0800 (PST) Received: from p183 ([178.172.146.10]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-59a18618d90sm7481489e87.56.2025.12.27.06.51.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 Dec 2025 06:51:21 -0800 (PST) Date: Sat, 27 Dec 2025 17:51:49 +0300 From: Alexey Dobriyan To: David Laight Cc: corbet@lwn.net, workflows@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 6/9] CodingStyle: recommend static_assert/_Static_assert Message-ID: References: <20250509203430.3448-1-adobriyan@gmail.com> <20250509203430.3448-6-adobriyan@gmail.com> <20250513204031.26f50209@pumpkin> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20250513204031.26f50209@pumpkin> On Tue, May 13, 2025 at 08:40:31PM +0100, David Laight wrote: > On Fri, 9 May 2025 23:34:27 +0300 > Alexey Dobriyan wrote: > > > Linux's BUG_ON is done backwards (condition is inverted). > > But it is a long story. > > > > However C11/C23 allow to partially transition to what all normal > > programmers are used to, namely assert(). > > > > Deprecate BUILD_BUG_ON, recommend static_assert/_Static_assert. > > And then some day BUG_ON will be flipped as well. > > _Static_assert() is broken by design and only usable for trival tests. It is not broken by design. I was going to recommend it for "static_assert(sizeof(struct S) == ...)" type of things. For ABI types and similar stuff. BTW BUILD_BUG_ON is broken by design too, there are places with fake functions for a block so that they can put statement in. > clang also output the entire expansion of the conditional (even when > a message is specified) which can lead to very very very very long lines. Oh, that's very unfortunate. > It isn't at all suitable for many of the checks in the kernel. STATIC_ASSERT could be arranged. > Look at the signedness test in min() as an example. The very fact you all made giant mess trying to imitate min() should not block progress of using standard (and better!) stuff.