[PATCH v1] fix compiling warning

Sebastian Huber sebastian.huber at embedded-brains.de
Mon Jan 16 09:02:21 UTC 2023


On 16.01.23 09:36, Zhu Zhongjie wrote:
> From: Zhongjie Zhu <zhongjiezhu1 at gmail.com>
> 
> there are different cases for _ISR_lock_ISR_disable() and _ISR_lock_ISR_enable()
> in the case RTEMS_SMP is defined or RTEMS_PROFILING is defined, so remove the related code.
> 
> ../../../cpukit/include/rtems/score/threaddispatch.h: In function '_Thread_Dispatch_disable':
> ../../../cpukit/include/rtems/score/threaddispatch.h:231:14: warning: 'lock_context' may be used uninitialized [-Wmaybe-uninitialized]
>    231 |   cpu_self = _Thread_Dispatch_disable_critical( &lock_context );
>        |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ../../../cpukit/include/rtems/score/threaddispatch.h:210:32: note: by argument 1 of type 'const ISR_lock_Context *' to '_Thread_Dispatch_disable_critical' declared here
>    210 | static inline Per_CPU_Control *_Thread_Dispatch_disable_critical(
>        |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ../../../cpukit/include/rtems/score/threaddispatch.h:225:21: note: 'lock_context' declared here
>    225 |   ISR_lock_Context  lock_context;
>        |                     ^~~~~~~~~~~~
> ---
>   cpukit/include/rtems/score/threaddispatch.h | 7 ++++---
>   1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/cpukit/include/rtems/score/threaddispatch.h b/cpukit/include/rtems/score/threaddispatch.h
> index 589935823f..b06ebe8fec 100644
> --- a/cpukit/include/rtems/score/threaddispatch.h
> +++ b/cpukit/include/rtems/score/threaddispatch.h
> @@ -222,16 +222,17 @@ static inline Per_CPU_Control *_Thread_Dispatch_disable_critical(
>   static inline Per_CPU_Control *_Thread_Dispatch_disable( void )
>   {
>     Per_CPU_Control  *cpu_self;
> -  ISR_lock_Context  lock_context;
>   
>   #if defined( RTEMS_SMP ) || defined( RTEMS_PROFILING )
> +  ISR_lock_Context  lock_context;
> +
>     _ISR_lock_ISR_disable( &lock_context );
> -#endif
>   
>     cpu_self = _Thread_Dispatch_disable_critical( &lock_context );
>   
> -#if defined( RTEMS_SMP ) || defined( RTEMS_PROFILING )
>     _ISR_lock_ISR_enable( &lock_context );
> +#else
> +  cpu_self = _Thread_Dispatch_disable_critical( NULL );
>   #endif
>   
>     return cpu_self;

I doubt that this patch compiles if RTEMS_SMP or RTEMS_PROFILING is not 
defined.

The problem with the warning is that _Thread_Dispatch_disable_critical() 
takes a const pointer to lock_context and nobody writes to this 
structure before it is handed over.

-- 
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.huber at embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/


More information about the devel mailing list