Translate C: Redo Add comment containing c source location for failed decls.
parent
448f8c2eb8
commit
0122f2cff6
|
@ -2346,8 +2346,10 @@ fn renderTokenOffset(
|
||||||
}
|
}
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
assert(loc.line != 0);
|
// translate-c doesn't generate correct newlines
|
||||||
const newline_count = if (loc.line == 1) @as(u8, 1) else @as(u8, 2);
|
// in generated code (loc.line == 0) so treat that case
|
||||||
|
// as though there was meant to be a newline between the tokens
|
||||||
|
const newline_count = if (loc.line <= 1) @as(u8, 1) else @as(u8, 2);
|
||||||
try stream.writeByteNTimes('\n', newline_count);
|
try stream.writeByteNTimes('\n', newline_count);
|
||||||
try stream.writeByteNTimes(' ', indent);
|
try stream.writeByteNTimes(' ', indent);
|
||||||
try stream.writeAll(mem.trimRight(u8, tree.tokenSlicePtr(next_token), " "));
|
try stream.writeAll(mem.trimRight(u8, tree.tokenSlicePtr(next_token), " "));
|
||||||
|
|
|
@ -3058,6 +3058,7 @@ fn transCreateCompoundAssign(
|
||||||
// common case
|
// common case
|
||||||
// c: lhs += rhs
|
// c: lhs += rhs
|
||||||
// zig: lhs += rhs
|
// zig: lhs += rhs
|
||||||
|
|
||||||
if ((is_mod or is_div) and is_signed) {
|
if ((is_mod or is_div) and is_signed) {
|
||||||
const op_token = try appendToken(rp.c, .Equal, "=");
|
const op_token = try appendToken(rp.c, .Equal, "=");
|
||||||
const op_node = try rp.c.a().create(ast.Node.InfixOp);
|
const op_node = try rp.c.a().create(ast.Node.InfixOp);
|
||||||
|
@ -4772,6 +4773,7 @@ pub fn failDecl(c: *Context, loc: ZigClangSourceLocation, name: []const u8, comp
|
||||||
const msg_tok = try appendTokenFmt(c, .StringLiteral, "\"" ++ format ++ "\"", args);
|
const msg_tok = try appendTokenFmt(c, .StringLiteral, "\"" ++ format ++ "\"", args);
|
||||||
const rparen_tok = try appendToken(c, .RParen, ")");
|
const rparen_tok = try appendToken(c, .RParen, ")");
|
||||||
const semi_tok = try appendToken(c, .Semicolon, ";");
|
const semi_tok = try appendToken(c, .Semicolon, ";");
|
||||||
|
_ = try appendTokenFmt(c, .LineComment, "// {}", .{c.locStr(loc)});
|
||||||
|
|
||||||
const msg_node = try c.a().create(ast.Node.StringLiteral);
|
const msg_node = try c.a().create(ast.Node.StringLiteral);
|
||||||
msg_node.* = ast.Node.StringLiteral{
|
msg_node.* = ast.Node.StringLiteral{
|
||||||
|
@ -5440,7 +5442,7 @@ fn parseCPrimaryExpr(c: *Context, it: *CTokenList.Iterator, source: []const u8,
|
||||||
};
|
};
|
||||||
return &node.base;
|
return &node.base;
|
||||||
} else {
|
} else {
|
||||||
const token = try appendTokenFmt(c, .IntegerLiteral, "0x{x}", .{source[tok.start + 1 .. tok.end - 1]});
|
const token = try appendTokenFmt(c, .IntegerLiteral, "0x{x}", .{source[tok.start+1..tok.end-1]});
|
||||||
const node = try c.a().create(ast.Node.IntegerLiteral);
|
const node = try c.a().create(ast.Node.IntegerLiteral);
|
||||||
node.* = .{
|
node.* = .{
|
||||||
.token = token,
|
.token = token,
|
||||||
|
|
Loading…
Reference in New Issue