Running SonarQube 9.6.1.59531 with SonarScanner 4.7.0.2747.
The original issue is in the parameter of a function call but I was able to reproduce in a simple assignment test:
char z = 'A';
char y = (z? 'a' : 'b');
The second line raises an issue “Target type is a plain char and should not be used to store numeric values.” This is unexpected according to the rule documentation and the fact that the assignment above it works.
I was unable to find an exact explanation for this behaviour in the C standard (checked C99) and GCC and Clang-10/12 neither throw warnings when compiled with -Wall.