https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109939
--- Comment #2 from Benjamin Robin <dev at benjarobin dot fr> ---
New test case with exactly same problem since __ssat() calls
__builtin_arm_ssat():
```
#include <arm_acle.h>
int dbg_ssat_out;
int dbg_ssat_in;
void test_arm_ssat(void)
{
dbg_ssat_out = __ssat(dbg_ssat_in, 16);
}
```
Build command:
```
arm-none-eabi-gcc -mcpu=cortex-m4 -Wall -Wconversion -c t2.c -o t2.o
t2.c: In function 'test_arm_ssat':
t2.c:8:20: warning: conversion to 'int32_t' {aka 'long int'} from 'unsigned
int' may change the sign of the result [-Wsign-conversion]
8 | dbg_ssat_out = __ssat(dbg_ssat_in, 16);
| ^~~~~~
```