All of lore.kernel.org
 help / color / mirror / Atom feed
From: "H. Peter Anvin" <hpa@zytor.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
	"Eugenio Pérez" <eperezma@redhat.com>,
	"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Al Viro" <viro@zeniv.linux.org.uk>,
	"Alexei Starovoitov" <ast@kernel.org>,
	"Alexey Dobriyan" <adobriyan@gmail.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Andrii Nakryiko" <andrii@kernel.org>,
	"Arnd Bergmann" <arnd@kernel.org>,
	"Borislav Petkov" <bp@alien8.de>,
	"Cong Wang" <cong.wang@bytedance.com>,
	"Dan Williams" <dan.j.williams@intel.com>,
	"Daniel Borkmann" <daniel@iogearbox.net>,
	"Dave Hansen" <dave.hansen@linux.intel.com>,
	"David Laight" <David.Laight@ACULAB.COM>,
	"David Lechner" <dlechner@baylibre.com>,
	"Dinh Nguyen" <dinguyen@kernel.org>,
	"Eduard Zingerman" <eddyz87@gmail.com>,
	"Gatlin Newhouse" <gatlin.newhouse@gmail.com>,
	"Hao Luo" <haoluo@google.com>, "Ingo Molnar" <mingo@redhat.com>,
	"Linus Torvalds" <torvalds@linux-foundation.org>,
	"Jakub Sitnicki" <jakub@cloudflare.com>,
	"Jan Hendrik Farr" <kernel@jfarr.cc>,
	"Jason Wang" <jasowang@redhat.com>,
	"Jiri Olsa" <jolsa@kernel.org>,
	"John Fastabend" <john.fastabend@gmail.com>,
	"Jonathan Cameron" <Jonathan.Cameron@huawei.com>,
	"Josh Poimboeuf" <jpoimboe@kernel.org>,
	"KP Singh" <kpsingh@kernel.org>, "Kees Cook" <kees@kernel.org>,
	"Luc Van Oostenryck" <luc.vanoostenryck@gmail.com>,
	"Marc Herbert" <Marc.Herbert@linux.intel.com>,
	"Martin KaFai Lau" <martin.lau@linux.dev>,
	"Mateusz Guzik" <mjguzik@gmail.com>,
	"Michal Luczaj" <mhal@rbox.co>, "Miguel Ojeda" <ojeda@kernel.org>,
	"Mykola Lysenko" <mykolal@fb.com>, NeilBrown <neil@brown.name>,
	"Peter Zijlstra" <peterz@infradead.org>,
	"Przemek Kitszel" <przemyslaw.kitszel@intel.com>,
	"Sami Tolvanen" <samitolvanen@google.com>,
	"Shuah Khan" <shuah@kernel.org>, "Song Liu" <song@kernel.org>,
	"Stanislav Fomichev" <sdf@fomichev.me>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Thorsten Blum" <thorsten.blum@linux.dev>,
	"Uros Bizjak" <ubizjak@gmail.com>,
	"Xuan Zhuo" <xuanzhuo@linux.alibaba.com>,
	"Yafang Shao" <laoar.shao@gmail.com>,
	"Ye Bin" <yebin10@huawei.com>,
	"Yonghong Song" <yonghong.song@linux.dev>,
	"Yufeng Wang" <wangyufeng@kylinos.cn>,
	bpf@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org,
	linux-sparse@vger.kernel.org, virtualization@lists.linux.dev,
	x86@kernel.org
Subject: [PATCH 1/7] compiler_types.h: add "auto" as a macro for "__auto_type"
Date: Fri, 18 Jul 2025 14:32:44 -0700	[thread overview]
Message-ID: <20250718213252.2384177-2-hpa@zytor.com> (raw)
In-Reply-To: <20250718213252.2384177-1-hpa@zytor.com>

"auto" was defined as a keyword back in the K&R days, but as a storage
type specifier.  No one ever used it, since it was and is the default
storage type for local variables.

C++11 recycled the keyword to allow a type to be declared based on the
type of an initializer.  This was finally adopted into standard C in
C23.

gcc and clang provide the "__auto_type" alias keyword as an extension
for pre-C23, however, there is no reason to pollute the bulk of the
source base with this temporary keyword; instead define "auto" as a
macro unless the compiler is running in C23+ mode.

This macro is added in <linux/compiler_types.h> because that header is
included in some of the tools headers, wheres <linux/compiler.h> is
not as it has a bunch of very kernel-specific things in it.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
---
 include/linux/compiler_types.h | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h
index 2b77d12e07b2..c8b1ee37934e 100644
--- a/include/linux/compiler_types.h
+++ b/include/linux/compiler_types.h
@@ -13,6 +13,19 @@
 
 #ifndef __ASSEMBLY__
 
+/*
+ * C23 introduces "auto" as a standard way to define type-inferred
+ * variables, but "auto" has been a (useless) keyword even since K&R C,
+ * so it has always been "namespace reserved."
+ *
+ * Until at some future time we require C23 support, we need the gcc
+ * extension __auto_type, but there is no reason to put that elsewhere
+ * in the source code.
+ */
+#if __STDC_VERSION__ < 202311L
+# define auto __auto_type
+#endif
+
 /*
  * Skipped when running bindgen due to a libclang issue;
  * see https://github.com/rust-lang/rust-bindgen/issues/2244.
-- 
2.50.1


  reply	other threads:[~2025-07-18 21:35 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-18 21:32 [PATCH 0/7] Replace "__auto_type" with "auto" H. Peter Anvin
2025-07-18 21:32 ` H. Peter Anvin [this message]
2025-07-18 21:32 ` [PATCH 2/7] include/linux: change "__auto_type" to "auto" H. Peter Anvin
2025-07-18 21:32 ` [PATCH 3/7] fs/proc: replace "__auto_type" with "auto" H. Peter Anvin
2025-07-19 14:26   ` Alexey Dobriyan
2025-07-18 21:32 ` [PATCH 4/7] arch/nios: " H. Peter Anvin
2025-07-18 21:49   ` Linus Torvalds
2025-07-18 22:11     ` H. Peter Anvin
2025-07-18 22:48     ` Linus Torvalds
2025-07-18 22:58       ` Linus Torvalds
2025-07-19  9:06     ` David Laight
2025-07-19  9:52     ` David Laight
2025-07-18 21:32 ` [PATCH 5/7] arch/x86: " H. Peter Anvin
2025-07-18 21:32 ` [PATCH 6/7] selftests/bpf: " H. Peter Anvin
2025-07-18 21:32 ` [PATCH 7/7] tools/virtio: " H. Peter Anvin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250718213252.2384177-2-hpa@zytor.com \
    --to=hpa@zytor.com \
    --cc=David.Laight@ACULAB.COM \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=Marc.Herbert@linux.intel.com \
    --cc=adobriyan@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=andrii@kernel.org \
    --cc=arnd@kernel.org \
    --cc=ast@kernel.org \
    --cc=bp@alien8.de \
    --cc=bpf@vger.kernel.org \
    --cc=cong.wang@bytedance.com \
    --cc=dan.j.williams@intel.com \
    --cc=daniel@iogearbox.net \
    --cc=dave.hansen@linux.intel.com \
    --cc=dinguyen@kernel.org \
    --cc=dlechner@baylibre.com \
    --cc=eddyz87@gmail.com \
    --cc=eperezma@redhat.com \
    --cc=gatlin.newhouse@gmail.com \
    --cc=haoluo@google.com \
    --cc=ilpo.jarvinen@linux.intel.com \
    --cc=jakub@cloudflare.com \
    --cc=jasowang@redhat.com \
    --cc=john.fastabend@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=jpoimboe@kernel.org \
    --cc=kees@kernel.org \
    --cc=kernel@jfarr.cc \
    --cc=kpsingh@kernel.org \
    --cc=laoar.shao@gmail.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-sparse@vger.kernel.org \
    --cc=luc.vanoostenryck@gmail.com \
    --cc=martin.lau@linux.dev \
    --cc=mhal@rbox.co \
    --cc=mingo@redhat.com \
    --cc=mjguzik@gmail.com \
    --cc=mst@redhat.com \
    --cc=mykolal@fb.com \
    --cc=neil@brown.name \
    --cc=ojeda@kernel.org \
    --cc=peterz@infradead.org \
    --cc=przemyslaw.kitszel@intel.com \
    --cc=samitolvanen@google.com \
    --cc=sdf@fomichev.me \
    --cc=shuah@kernel.org \
    --cc=song@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=thorsten.blum@linux.dev \
    --cc=torvalds@linux-foundation.org \
    --cc=ubizjak@gmail.com \
    --cc=viro@zeniv.linux.org.uk \
    --cc=virtualization@lists.linux.dev \
    --cc=wangyufeng@kylinos.cn \
    --cc=x86@kernel.org \
    --cc=xuanzhuo@linux.alibaba.com \
    --cc=yebin10@huawei.com \
    --cc=yonghong.song@linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.