[PATCH] powerpc/xmon: avoid warnings about variables that might be clobbered by ‘longjmp’

Subsystems: linux for powerpc (32-bit and 64-bit), the rest

STALE2962d

4 messages, 3 authors, 2018-06-26 · open the first message on its own page

[PATCH] powerpc/xmon: avoid warnings about variables that might be clobbered by ‘longjmp’

From: Mathieu Malaterre <hidden>
Date: 2018-06-22 19:27:35

Move initialization of variables after data definitions. This silence
warnings treated as error with W=1:

  arch/powerpc/xmon/xmon.c:3389:14: error: variable ‘name’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Werror=clobbered]
  arch/powerpc/xmon/xmon.c:3100:22: error: variable ‘tsk’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Werror=clobbered]

Signed-off-by: Mathieu Malaterre <redacted>
---
 arch/powerpc/xmon/xmon.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 47166ad2a669..982848c784ff 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -3097,10 +3097,11 @@ static void show_pte(unsigned long addr)
 static void show_tasks(void)
 {
 	unsigned long tskv;
-	struct task_struct *tsk = NULL;
+	struct task_struct *tsk;
 
 	printf("     task_struct     ->thread.ksp    PID   PPID S  P CMD\n");
 
+	tsk = NULL;
 	if (scanhex(&tskv))
 		tsk = (struct task_struct *)tskv;
 
@@ -3386,10 +3387,11 @@ static void xmon_print_symbol(unsigned long address, const char *mid,
 			      const char *after)
 {
 	char *modname;
-	const char *name = NULL;
+	const char *name;
 	unsigned long offset, size;
 
 	printf(REG, address);
+	name = NULL;
 	if (setjmp(bus_error_jmp) == 0) {
 		catch_memory_errors = 1;
 		sync();
-- 
2.11.0

Re: [PATCH] powerpc/xmon: avoid warnings about variables that might be clobbered by ‘longjmp’

From: christophe leroy <hidden>
Date: 2018-06-23 16:59:34


Le 22/06/2018 à 21:27, Mathieu Malaterre a écrit :
Move initialization of variables after data definitions. This silence
warnings treated as error with W=1:

   arch/powerpc/xmon/xmon.c:3389:14: error: variable ‘name’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Werror=clobbered]
   arch/powerpc/xmon/xmon.c:3100:22: error: variable ‘tsk’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Werror=clobbered]
Is that an invalid warning ?

If so, please explain in the commit log.

Otherwise, I'd expect one to fix the warning, not just cheat on GCC.

Christophe

quoted hunk
Signed-off-by: Mathieu Malaterre <redacted>
---
  arch/powerpc/xmon/xmon.c | 6 ++++--
  1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 47166ad2a669..982848c784ff 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -3097,10 +3097,11 @@ static void show_pte(unsigned long addr)
  static void show_tasks(void)
  {
  	unsigned long tskv;
-	struct task_struct *tsk = NULL;
+	struct task_struct *tsk;
  
  	printf("     task_struct     ->thread.ksp    PID   PPID S  P CMD\n");
  
+	tsk = NULL;
  	if (scanhex(&tskv))
  		tsk = (struct task_struct *)tskv;
  
@@ -3386,10 +3387,11 @@ static void xmon_print_symbol(unsigned long address, const char *mid,
  			      const char *after)
  {
  	char *modname;
-	const char *name = NULL;
+	const char *name;
  	unsigned long offset, size;
  
  	printf(REG, address);
+	name = NULL;
  	if (setjmp(bus_error_jmp) == 0) {
  		catch_memory_errors = 1;
  		sync();
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus

Re: [PATCH] powerpc/xmon: avoid warnings about variables that might be clobbered by ‘longjmp’

From: Segher Boessenkool <hidden>
Date: 2018-06-23 19:48:06

On Sat, Jun 23, 2018 at 06:59:27PM +0200, christophe leroy wrote:

Le 22/06/2018 à 21:27, Mathieu Malaterre a écrit :
quoted
Move initialization of variables after data definitions. This silence
warnings treated as error with W=1:

  arch/powerpc/xmon/xmon.c:3389:14: error: variable ‘name’ might be 
  clobbered by ‘longjmp’ or ‘vfork’ [-Werror=clobbered]
  arch/powerpc/xmon/xmon.c:3100:22: error: variable ‘tsk’ might be 
  clobbered by ‘longjmp’ or ‘vfork’ [-Werror=clobbered]
Is that an invalid warning ?
No, both are correct warnings.  GCC can not see which functions it only
has a declaration of can call longjmp.
Otherwise, I'd expect one to fix the warning, not just cheat on GCC.
Yes, the patch seems to change the code in such a way that some versions
of GCC will no longer warn.  Which does not make to code any more correct.

Either restructure the code, or make the var non-automatic, or make it
volatile.


Segher

Re: [PATCH] powerpc/xmon: avoid warnings about variables that might be clobbered by ‘longjmp’

From: Mathieu Malaterre <hidden>
Date: 2018-06-26 06:27:22

On Sat, Jun 23, 2018 at 9:47 PM Segher Boessenkool
[off-list ref] wrote:
On Sat, Jun 23, 2018 at 06:59:27PM +0200, christophe leroy wrote:
quoted

Le 22/06/2018 =C3=A0 21:27, Mathieu Malaterre a =C3=A9crit :
quoted
Move initialization of variables after data definitions. This silence
warnings treated as error with W=3D1:

  arch/powerpc/xmon/xmon.c:3389:14: error: variable =E2=80=98name=E2=
=80=99 might be
quoted
quoted
  clobbered by =E2=80=98longjmp=E2=80=99 or =E2=80=98vfork=E2=80=99 [=
-Werror=3Dclobbered]
quoted
quoted
  arch/powerpc/xmon/xmon.c:3100:22: error: variable =E2=80=98tsk=E2=
=80=99 might be
quoted
quoted
  clobbered by =E2=80=98longjmp=E2=80=99 or =E2=80=98vfork=E2=80=99 [=
-Werror=3Dclobbered]
quoted
Is that an invalid warning ?
No, both are correct warnings.  GCC can not see which functions it only
has a declaration of can call longjmp.
I assumed those were false positive warnings, given how easy it was to
defeat them. Let give it another try.
quoted
Otherwise, I'd expect one to fix the warning, not just cheat on GCC.
Yes, the patch seems to change the code in such a way that some versions
of GCC will no longer warn.  Which does not make to code any more correct=
.
Either restructure the code, or make the var non-automatic, or make it
volatile.


Segher
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help