Quantcast
Channel: Active questions tagged gcc - Stack Overflow
Viewing all articles
Browse latest Browse all 22037

gcc compilation error on simple short int function call with flag -Werror=traditional-conversion

$
0
0

Compiling this C program with gcc 11.4.0 and -Werror=traditional-conversion raises an error:

short int f(short int x);short int f(short int x) {    return x;}int main(void){    short int a = 0;    f(a);    return 0;}

error: passing argument 1 of ‘f’ with different width due to prototype

Assuming that I can't change the function's signature because it comes from a library, is there a way to change the calling code to make the error go away?

I did try several kind of integer types for the a variable but to no avail. I would not expect the error to appear because the variable and the function's parameter prototype type are the same (short int). It looks to me like a false positive but it may be related to some implicit default promotion. I would rather find a solution that doesn't make me remove this compilation flag.


Viewing all articles
Browse latest Browse all 22037

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>