zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit d3a57b96a9bff608f9488c5d0c3c19100997373d (tree)
parent b3c1ced2c37a8265314833fd74a105ca788db927
Author: Veikka Tuominen <git@vexu.eu>
Date:   Tue, 15 Dec 2020 22:40:04 +0200

translate-c: detect parenthesized string literals

Diffstat:
Msrc/translate_c.zig | 4++++
Mtest/run_translated_c.zig | 7+++++++
2 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/src/translate_c.zig b/src/translate_c.zig @@ -1797,6 +1797,10 @@ fn exprIsStringLiteral(expr: *const clang.Expr) bool { const op_expr = @ptrCast(*const clang.UnaryOperator, expr).getSubExpr(); return exprIsStringLiteral(op_expr); }, + .ParenExprClass => { + const op_expr = @ptrCast(*const clang.ParenExpr, expr).getSubExpr(); + return exprIsStringLiteral(op_expr); + }, else => return false, } } diff --git a/test/run_translated_c.zig b/test/run_translated_c.zig @@ -3,6 +3,13 @@ const tests = @import("tests.zig"); const nl = std.cstr.line_sep; pub fn addCases(cases: *tests.RunTranslatedCContext) void { + cases.add("parenthesized string literal", + \\void foo(const char *s) {} + \\int main(void) { + \\ foo(("bar")); + \\} + , ""); + cases.add("variable shadowing type type", \\#include <stdlib.h> \\int main() {