lexer_token.type = T_WIDE_CHARACTER_CONSTANT;
lexer_token.literal = identify_string(string, size);
+
+ if (size == 0) {
+ parse_error("empty character constant");
+ }
}
/**
lexer_token.type = T_CHARACTER_CONSTANT;
lexer_token.literal = identify_string(string, size);
+
+ if (size == 0) {
+ parse_error("empty character constant");
+ }
}
/**
literal->literal.value = token.literal;
size_t len = literal->literal.value.size;
- if (len != 1) {
+ if (len > 1) {
if (!GNU_MODE && !(c_mode & _C99)) {
errorf(HERE, "more than 1 character in character constant");
} else if (warning.multichar) {
literal->literal.value = token.literal;
size_t len = wstrlen(&literal->literal.value);
- if (len != 1) {
+ if (len > 1) {
warningf(HERE, "multi-character character constant");
}