char.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/char.c b/char.c index 730ae3f5..3706e033 100644 --- a/char.c +++ b/char.c @@ -93,6 +93,10 @@ void get_char_constant(struct token *token, unsigned long long *val) if (p != end) warning(token->pos, "multi-character character constant"); + if (v & 0x80) { + if (type >= TOKEN_CHAR && type <= TOKEN_CHAR_EMBEDDED_3) + warning(token->pos, "character constant with sign bit set"); + } *val = v; }