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:
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() {