aboutsummaryrefslogtreecommitdiff
path: root/tree.c
diff options
context:
space:
mode:
authorTucker Evans <tuckerevans24@gmail.com>2019-08-29 11:53:06 -0400
committerTucker Evans <tuckerevans24@gmail.com>2019-08-29 11:53:06 -0400
commit227b13eccaecc05d76ca8dceb922a9d280ead0c4 (patch)
tree6f293ebb87d4aa36779c0f650826759ff567fcc1 /tree.c
parentec98dd863237aa4a1853e0efb589f2da597c5640 (diff)
Fix return value for correctly typed statements
Change okay return value to 1 so 0 can be used to denote an unset return type
Diffstat (limited to 'tree.c')
-rw-r--r--tree.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/tree.c b/tree.c
index fd40781..bb025f5 100644
--- a/tree.c
+++ b/tree.c
@@ -21,6 +21,7 @@ ptree *l, *r;
t->type = type;
t->l = l;
t->r = r;
+ t->ret_type = 0;
return t;
}
@@ -90,10 +91,12 @@ ptree *t;
{
if (!t)
return;
-
- set_ret_type(t->l);
- set_ret_type(t->r);
+ if (! (t->l && t->l->ret_type == 1))
+ set_ret_type(t->l);
+ if (! (t->r && t->r->ret_type == 1))
+ set_ret_type(t->r);
+
t->ret_type = check_ret_type(t);
return;