From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pegase2.c-s.fr (pegase2.c-s.fr [93.17.235.10]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 093C120C004 for ; Tue, 12 Aug 2025 06:20:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=93.17.235.10 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754979636; cv=none; b=ra3wfbEXW0EJ8o62YHiaG8jl7DuKINo1yOPWIwn9Q0dixzUuap+/MuuYgxel6/BnnesbIZJNJUjVcmDRCpRljKt+ATZ5VkVEjuzRNA7QF6GVxGaFQmG1yXMBn2sA0nBECq7qkYcIHQZybL4ua3wk72JdEh0FRIHUZb2rlgJPrIM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754979636; c=relaxed/simple; bh=Y7VqHf4C+JSQxOFwIP6hzbmo5lu9mZzg++Z+7+9xQJQ=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=gxGiAbNNkZjss+5+aR4xaZP3uzkouaL3VjAP0WYNCenM80GnI8FLy1tpAA1p9jWt1ppWBcmzD7nC9ytLoBHYlcu+XUdMfb5wtKNHczMFMIFnkiU/kU+ixs7CS/iK4kMuXNAMsR6tRrk3TYniYP96UM58+MpXDG+9HqLmtBKOUzo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=csgroup.eu; spf=pass smtp.mailfrom=csgroup.eu; arc=none smtp.client-ip=93.17.235.10 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=csgroup.eu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=csgroup.eu Received: from localhost (mailhub4.si.c-s.fr [172.26.127.67]) by localhost (Postfix) with ESMTP id 4c1LbP1ZCQz9sSH; Tue, 12 Aug 2025 08:05:53 +0200 (CEST) X-Virus-Scanned: amavisd-new at c-s.fr Received: from pegase2.c-s.fr ([172.26.127.65]) by localhost (pegase2.c-s.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3WR0gSTJzGY1; Tue, 12 Aug 2025 08:05:53 +0200 (CEST) Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192]) by pegase2.c-s.fr (Postfix) with ESMTP id 4c1LbP0Kj8z9sSC; Tue, 12 Aug 2025 08:05:53 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id DE8C38B764; Tue, 12 Aug 2025 08:05:52 +0200 (CEST) X-Virus-Scanned: amavisd-new at c-s.fr Received: from messagerie.si.c-s.fr ([127.0.0.1]) by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id VXWlAoGWUx8D; Tue, 12 Aug 2025 08:05:52 +0200 (CEST) Received: from [192.168.235.99] (unknown [192.168.235.99]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 1C6768B763; Tue, 12 Aug 2025 08:05:52 +0200 (CEST) Message-ID: Date: Tue, 12 Aug 2025 08:05:51 +0200 Precedence: bulk X-Mailing-List: llvm@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 1/8] selftests: vDSO: fix -Wunitialized in powerpc VDSO_CALL() wrapper To: =?UTF-8?Q?Thomas_Wei=C3=9Fschuh?= , Andy Lutomirski , Thomas Gleixner , Vincenzo Frascino , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , "Jason A. Donenfeld" Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Shuah Khan , llvm@lists.linux.dev, kernel test robot References: <20250812-vdso-tests-fixes-v2-0-90f499dd35f8@linutronix.de> <20250812-vdso-tests-fixes-v2-1-90f499dd35f8@linutronix.de> From: Christophe Leroy Content-Language: fr-FR In-Reply-To: <20250812-vdso-tests-fixes-v2-1-90f499dd35f8@linutronix.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Le 12/08/2025 à 07:39, Thomas Weißschuh a écrit : > The _rval register variable is meant to be an output operand of the asm > statement but is instead used as input operand. > clang 20.1 notices this and triggers -Wuninitialized warnings: > > tools/testing/selftests/timers/auxclock.c:154:10: error: variable '_rval' is uninitialized when used here [-Werror,-Wuninitialized] > 154 | return VDSO_CALL(self->vdso_clock_gettime64, 2, clockid, ts); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > tools/testing/selftests/timers/../vDSO/vdso_call.h:59:10: note: expanded from macro 'VDSO_CALL' > 59 | : "r" (_rval) \ > | ^~~~~ > tools/testing/selftests/timers/auxclock.c:154:10: note: variable '_rval' is declared here > tools/testing/selftests/timers/../vDSO/vdso_call.h:47:2: note: expanded from macro 'VDSO_CALL' > 47 | register long _rval asm ("r3"); \ > | ^ > > It seems the list of input and output operands have been switched around. > However as the argument registers are not always initialized they can not > be marked as pure inputs as that would trigger -Wuninitialized warnings. > Adding _rval as another input and output operand does also not work as it > would collide with the existing _r3 variable. > > Instead reuse _r3 for both the argument and the return value. > > Reported-by: kernel test robot > Closes: https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kernel.org%2Foe-kbuild-all%2F202506180223.BOOk5jDK-lkp%40intel.com%2F&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7C611dd96dfdad4dcd55d708ddd9629305%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C638905739611064850%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=QcOje8P4T0%2BsqgkSaP%2BkT3fS875kqCZhxChDmvWVY%2Fg%3D&reserved=0 > Fixes: 6eda706a535c ("selftests: vDSO: fix the way vDSO functions are called for powerpc") > Signed-off-by: Thomas Weißschuh Reviewed-by: Christophe Leroy > --- > tools/testing/selftests/vDSO/vdso_call.h | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/tools/testing/selftests/vDSO/vdso_call.h b/tools/testing/selftests/vDSO/vdso_call.h > index bb237d771051bd4103367fc60b54b505b7586965..e7205584cbdca5e10c13c1e9425d2023b02cda7f 100644 > --- a/tools/testing/selftests/vDSO/vdso_call.h > +++ b/tools/testing/selftests/vDSO/vdso_call.h > @@ -44,7 +44,6 @@ > register long _r6 asm ("r6"); \ > register long _r7 asm ("r7"); \ > register long _r8 asm ("r8"); \ > - register long _rval asm ("r3"); \ > \ > LOADARGS_##nr(fn, args); \ > \ > @@ -54,13 +53,13 @@ > " bns+ 1f\n" \ > " neg 3, 3\n" \ > "1:" \ > - : "+r" (_r0), "=r" (_r3), "+r" (_r4), "+r" (_r5), \ > + : "+r" (_r0), "+r" (_r3), "+r" (_r4), "+r" (_r5), \ > "+r" (_r6), "+r" (_r7), "+r" (_r8) \ > - : "r" (_rval) \ > + : \ > : "r9", "r10", "r11", "r12", "cr0", "cr1", "cr5", \ > "cr6", "cr7", "xer", "lr", "ctr", "memory" \ > ); \ > - _rval; \ > + _r3; \ > }) > > #else >