testsuites/validation/tx-call-within-isr.c: Address dangling pointer

On the genmcf548x BSP variants, the "request" local variable was
flagged as having a pointer taken and passed to subroutines. GCC
is unable to detect that the "request" variable is removed from
the chain in an ISR. Disabled -Wdangling-pointer for the single
test function CallWithinISR().
This commit is contained in:
Joel Sherrill
2025-09-18 14:04:14 -05:00
committed by Gedare Bloom
parent ad60ce8c2c
commit fa84f51442

View File

@@ -107,6 +107,14 @@ static void CallWithinISRHandler( void *arg )
}
}
/*
* On some architectures, GCC gives a warning for a dangling pointer.
* This is because "request" is a local variable and its address is
* passed to another function. GCC cannot detect that "request" is
* added to a chain in the foreground and removed in the ISR.
*/
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdangling-pointer"
void CallWithinISR( void ( *handler )( void * ), void *arg )
{
CallWithinISRRequest request;
@@ -116,6 +124,7 @@ void CallWithinISR( void ( *handler )( void * ), void *arg )
CallWithinISRSubmit( &request );
CallWithinISRWait( &request );
}
#pragma GCC diagnostic pop
void CallWithinISRSubmit( CallWithinISRRequest *request )
{