On 27/07/2020 10:40, Richi Dubey wrote:

Hi,

When I am compiling my current code, I am getting the following compiler warning:

---------------------------------------------------------------

/home/richi/quick-start/src/rtems/c/src/../../cpukit/score/src/schedulerstrongapa.c: In function '_Scheduler_strong_APA_Extract_from_ready': /home/richi/quick-start/src/rtems/c/src/../../cpukit/score/src/schedulerstrongapa.c:400:37: warning: variable 'self' set but not used [-Wunused-but-set-variable]
   Scheduler_strong_APA_Context     *self;
                                     ^~~~
---------------------------------------------------------------

This warning refers to the following code: https://github.com/richidubey/rtems/blob/3a9843f61bbd547d150d2ee2d791668cfb5aa282/cpukit/score/src/schedulerstrongapa.c#L415

We can see that the self variable is used to get the status of the chain, why would I get such a warning then?

void _Scheduler_strong_APA_Extract_from_ready(
  Scheduler_Context *context,
  Scheduler_Node    *node_to_extract
)
{
  Scheduler_strong_APA_Context     *self;
  Scheduler_strong_APA_Node        *node;

  self = _Scheduler_strong_APA_Get_self( context );
  node = _Scheduler_strong_APA_Node_downcast( node_to_extract );

  _Assert( _Chain_Is_empty(self->allNodes) == false );
  _Assert( _Chain_Is_node_off_chain( &node->Node ) == false );

   _Chain_Extract_unprotected( &node->Node );    //Removed from allNodes
   _Chain_Set_off_chain( &node->Node );
}

It is only used in the _Assert(). I guess you build without the configure option --enable-rtems-debug? During development it is useful to enable the RTEMS_DEBUG support.

You should not compare boolean values against true or false. Just write

_Assert( !_Chain_Is_empty(self->allNodes) );

for example.

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to