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);
      |                    ^~~~~~
```

Reply via email to