| ... | @@ -853,15 +853,15 @@ fn transStmt( | ... | @@ -853,15 +853,15 @@ fn transStmt( |
| 853 | .ReturnStmtClass => return transReturnStmt(rp, scope, @ptrCast(*const ZigClangReturnStmt, stmt)), | 853 | .ReturnStmtClass => return transReturnStmt(rp, scope, @ptrCast(*const ZigClangReturnStmt, stmt)), |
| 854 | .StringLiteralClass => return transStringLiteral(rp, scope, @ptrCast(*const ZigClangStringLiteral, stmt), result_used), | 854 | .StringLiteralClass => return transStringLiteral(rp, scope, @ptrCast(*const ZigClangStringLiteral, stmt), result_used), |
| 855 | .ParenExprClass => { | 855 | .ParenExprClass => { |
| 856 | const expr = try transExpr(rp, scope, ZigClangParenExpr_getSubExpr(@ptrCast(*const ZigClangParenExpr, stmt)), result_used, lrvalue); | 856 | const expr = try transExpr(rp, scope, ZigClangParenExpr_getSubExpr(@ptrCast(*const ZigClangParenExpr, stmt)), .used, lrvalue); |
| 857 | if (expr.id == .GroupedExpression) return expr; | 857 | if (expr.id == .GroupedExpression) return maybeSuppressResult(rp, scope, result_used, expr); |
| 858 | const node = try rp.c.a().create(ast.Node.GroupedExpression); | 858 | const node = try rp.c.a().create(ast.Node.GroupedExpression); |
| 859 | node.* = .{ | 859 | node.* = .{ |
| 860 | .lparen = try appendToken(rp.c, .LParen, "("), | 860 | .lparen = try appendToken(rp.c, .LParen, "("), |
| 861 | .expr = expr, | 861 | .expr = expr, |
| 862 | .rparen = try appendToken(rp.c, .RParen, ")"), | 862 | .rparen = try appendToken(rp.c, .RParen, ")"), |
| 863 | }; | 863 | }; |
| 864 | return &node.base; | 864 | return maybeSuppressResult(rp, scope, result_used, &node.base); |
| 865 | }, | 865 | }, |
| 866 | .InitListExprClass => return transInitListExpr(rp, scope, @ptrCast(*const ZigClangInitListExpr, stmt), result_used), | 866 | .InitListExprClass => return transInitListExpr(rp, scope, @ptrCast(*const ZigClangInitListExpr, stmt), result_used), |
| 867 | .ImplicitValueInitExprClass => return transImplicitValueInitExpr(rp, scope, @ptrCast(*const ZigClangExpr, stmt), result_used), | 867 | .ImplicitValueInitExprClass => return transImplicitValueInitExpr(rp, scope, @ptrCast(*const ZigClangExpr, stmt), result_used), |
| ... | @@ -2098,6 +2098,9 @@ fn transMemberExpr(rp: RestorePoint, scope: *Scope, stmt: *const ZigClangMemberE | ... | @@ -2098,6 +2098,9 @@ fn transMemberExpr(rp: RestorePoint, scope: *Scope, stmt: *const ZigClangMemberE |
| 2098 | } | 2098 | } |
| 2099 | | 2099 | |
| 2100 | const name = try rp.c.str(ZigClangDecl_getName_bytes_begin(@ptrCast(*const ZigClangDecl, ZigClangMemberExpr_getMemberDecl(stmt)))); | 2100 | const name = try rp.c.str(ZigClangDecl_getName_bytes_begin(@ptrCast(*const ZigClangDecl, ZigClangMemberExpr_getMemberDecl(stmt)))); |
| | 2101 | if (name.len == 0) { |
| | 2102 | return revertAndWarn(rp, error.UnsupportedTranslation, ZigClangStmt_getBeginLoc(@ptrCast(*const ZigClangStmt, stmt)), "TODO access of anonymous field", .{}); |
| | 2103 | } |
| 2101 | const node = try transCreateNodeFieldAccess(rp.c, container_node, name); | 2104 | const node = try transCreateNodeFieldAccess(rp.c, container_node, name); |
| 2102 | return maybeSuppressResult(rp, scope, result_used, node); | 2105 | return maybeSuppressResult(rp, scope, result_used, node); |
| 2103 | } | 2106 | } |