SDCC should take signedness of char more seriously. SDCC compiles
unsigned char *uc = "test";
signed char *sc = "test";
char *c = "test";
without warning or error. But the first and second are a constarint violation, requiring a diagnostic. I suggest a warning.
Also,
const char *g;
void f(void)
{
g = _Generic("test"[0], char: "char", unsigned char: "unsigned char", signed char: "signed char");
}
gives an error ("error 228: multiple matching expressions in generic association"), but shouldn't.
Philipp
Diff:
Fixed in [r11150].
Philipp