+#if DBG_CODE
+static void
+stack_validate_tail(struct ao_lisp_stack *stack)
+{
+ struct ao_lisp_cons *head = ao_lisp_poly_cons(stack->formals);
+ struct ao_lisp_cons *tail = ao_lisp_poly_cons(stack->formals_tail);
+ struct ao_lisp_cons *cons;
+ for (cons = head; cons && cons->cdr && cons != tail; cons = ao_lisp_poly_cons(cons->cdr))
+ ;
+ if (cons != tail || (tail && tail->cdr)) {
+ if (!tail) {
+ printf("tail null\n");
+ } else {
+ printf("tail validate fail head %d actual %d recorded %d\n",
+ OFFSET(head), OFFSET(cons), OFFSET(tail));
+ abort();
+ }
+ }
+}
+#else
+#define stack_validate_tail(s)
+#endif
+