This commit is contained in:
SuperAuguste 2020-04-05 19:06:43 -04:00
parent 027e2a1673
commit 6106cf4419
2 changed files with 7 additions and 4 deletions

View File

@ -5387,10 +5387,7 @@ fn parseCPrimaryExpr(c: *Context, it: *CTokenList.Iterator, source: []const u8,
switch (tok.id) {
.CharLiteral => {
const first_tok = it.list.at(0);
if (
(source[tok.start+1] == '\\' and tok.end - tok.start == 4)
or (source[tok.start+1] != '\\' and tok.end - tok.start == 3)
) {
if (source[tok.start] != '\'' or source[tok.start + 1] == '\\' or tok.end - tok.start == 3) {
const token = try appendToken(c, .CharLiteral, try zigifyEscapeSequences(c, source[tok.start..tok.end], source[first_tok.start..first_tok.end], source_loc));
const node = try c.a().create(ast.Node.CharLiteral);
node.* = .{

View File

@ -2847,4 +2847,10 @@ pub fn addCases(cases: *tests.TranslateCContext) void {
, &[_][]const u8{
\\pub const FOO = "a" ++ ("b" ++ "c");
});
cases.add("multibyte character literals",
\\#define FOO 'abcd'
, &[_][]const u8{
\\pub const FOO = 0x61626364;
});
}