aboutsummaryrefslogtreecommitdiff
path: root/src/lower.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lower.c')
-rw-r--r--src/lower.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/lower.c b/src/lower.c
index 5578319..b683e0b 100644
--- a/src/lower.c
+++ b/src/lower.c
@@ -309,6 +309,12 @@ static int lower_mark_moved(struct state *state, struct ast *moves)
if (move->k != AST_ID)
continue;
+ if (is_trivially_copyable(move->t))
+ continue;
+
+ if (is_callable(move->t))
+ continue;
+
printf("%s_owned = false;\n", id_str(move));
indent(state);
}
@@ -450,6 +456,9 @@ static int lower_block_vars(struct state *state, struct ast *block)
if (is_trivially_copyable(def->t))
continue;
+ if (is_callable(def->t))
+ continue;
+
if (!populated) {
indent(state);
printf("[[maybe_unused]] bool %s_owned = true",