summaryrefslogtreecommitdiffstats
path: root/translate.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'translate.cxx')
-rw-r--r--translate.cxx23
1 files changed, 17 insertions, 6 deletions
diff --git a/translate.cxx b/translate.cxx
index a4ca176d..f2a848f3 100644
--- a/translate.cxx
+++ b/translate.cxx
@@ -2082,8 +2082,7 @@ delete_statement_operand_visitor::visit_arrayindex (arrayindex* e)
}
else
{
- // FIXME: fill in some logic here!
- assert(false);
+ throw semantic_error("cannot delete histogram bucket entries\n", e->tok);
}
}
@@ -2282,8 +2281,14 @@ c_tmpcounter::visit_array_in (array_in* e)
}
else
{
- // FIXME: fill in some logic here!
- assert(false);
+ // By definition:
+ //
+ // 'foo in @hist_op(...)' is true iff
+ // '@hist_op(...)[foo]' is nonzero
+ //
+ // so we just delegate to the latter call, since int64_t is also
+ // our boolean type.
+ e->operand->visit(this);
}
}
@@ -2315,8 +2320,14 @@ c_unparser::visit_array_in (array_in* e)
}
else
{
- // FIXME: fill in some logic here!
- assert(false);
+ // By definition:
+ //
+ // 'foo in @hist_op(...)' is true iff
+ // '@hist_op(...)[foo]' is nonzero
+ //
+ // so we just delegate to the latter call, since int64_t is also
+ // our boolean type.
+ e->operand->visit(this);
}
}