diff --git a/src/translate_c.cpp b/src/translate_c.cpp index 203d186b9..6765bf45f 100644 --- a/src/translate_c.cpp +++ b/src/translate_c.cpp @@ -3052,7 +3052,7 @@ static AstNode *trans_member_expr(Context *c, ResultUsed result_used, TransScope return nullptr; if (ZigClangMemberExpr_isArrow(stmt)) { - container_node = trans_create_node_unwrap_null(c, container_node); + container_node = trans_create_node_ptr_deref(c, container_node); } const char *name = ZigClangDecl_getName_bytes_begin((const ZigClangDecl *)ZigClangMemberExpr_getMemberDecl(stmt)); diff --git a/test/translate_c.zig b/test/translate_c.zig index 672075e3b..a79d12fbf 100644 --- a/test/translate_c.zig +++ b/test/translate_c.zig @@ -895,7 +895,7 @@ pub fn addCases(cases: *tests.TranslateCContext) void { \\ field: c_int, \\}; \\pub export fn read_field(foo: [*c]struct_Foo) c_int { - \\ return foo.?.field; + \\ return foo.*.field; \\} );