tools/nolibc: mark arg1 operand in __nolibc_syscall0() as write-only

__nolibc_syscall0() does not set the arg1 variable before passing it to
the asm block. This uninitialized variable read is undefined behavior.
Clang can miscompile this.

Mark the asm operand as write-only to fix this.

Fixes: 8e1930296f ("tools/nolibc: Add support for SPARC")
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Acked-by: Willy Tarreau <w@1wt.eu>
Link: https://patch.msgid.link/20260703-nolibc-sparc-asm-v1-1-c7fe73e2e777@weissschuh.net
This commit is contained in:
Thomas Weißschuh
2026-07-03 19:30:16 +02:00
parent 4f5777cfbd
commit a3b2181459

View File

@@ -45,7 +45,7 @@
\
__asm__ volatile ( \
_NOLIBC_SYSCALL \
: "+r"(_arg1) \
: "=r"(_arg1) \
: "r"(_num) \
: "memory", "cc" \
); \