summaryrefslogtreecommitdiff
path: root/src/codegen
diff options
context:
space:
mode:
Diffstat (limited to 'src/codegen')
-rw-r--r--src/codegen/codegen.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/codegen/codegen.c b/src/codegen/codegen.c
index 7c58943..b090546 100644
--- a/src/codegen/codegen.c
+++ b/src/codegen/codegen.c
@@ -745,7 +745,15 @@ void codegen_expression(ParserContext *ctx, ASTNode *node, FILE *out)
}
else
{
+ if (node->member.target->type == NODE_EXPR_CAST)
+ {
+ fprintf(out, "(");
+ }
codegen_expression(ctx, node->member.target, out);
+ if (node->member.target->type == NODE_EXPR_CAST)
+ {
+ fprintf(out, ")");
+ }
// Verify actual type instead of trusting is_pointer_access flag
char *lt = infer_type(ctx, node->member.target);
int actually_ptr = 0;