optimizer: fix tail-position bug in recent optimizer change
Fixes a problem with a7a912eeab
.
The existing test suite caught this bug, but I somehow overlooked
the failure report.
This commit is contained in:
parent
f57c1c8e2a
commit
75e201cc06
|
@ -2879,13 +2879,13 @@ Scheme_Object *scheme_optimize_lets(Scheme_Object *form, Optimize_Info *info, in
|
|||
#define OPT_CONTEXT_BOOLEAN 0x1
|
||||
/* Context might duplicate the expression: */
|
||||
#define OPT_CONTEXT_NO_SINGLE 0x2
|
||||
/* Context checks that result is a single value: */
|
||||
/* Context checks that result is a single value and is non-tail w.r.t. to same clock as bindig: */
|
||||
#define OPT_CONTEXT_SINGLED 0x4
|
||||
#define OPT_CONTEXT_TYPE_SHIFT 4
|
||||
#define OPT_CONTEXT_TYPE_MASK (SCHEME_MAX_LOCAL_TYPE_MASK << OPT_CONTEXT_TYPE_SHIFT)
|
||||
#define OPT_CONTEXT_TYPE(oc) ((oc & OPT_CONTEXT_TYPE_MASK) >> OPT_CONTEXT_TYPE_SHIFT)
|
||||
|
||||
#define scheme_optimize_result_context(c) (c & (~(OPT_CONTEXT_TYPE_MASK | OPT_CONTEXT_NO_SINGLE)))
|
||||
#define scheme_optimize_result_context(c) (c & (~(OPT_CONTEXT_TYPE_MASK | OPT_CONTEXT_NO_SINGLE | OPT_CONTEXT_SINGLED)))
|
||||
#define scheme_optimize_tail_context(c) scheme_optimize_result_context(c)
|
||||
|
||||
Scheme_Object *scheme_optimize_apply_values(Scheme_Object *f, Scheme_Object *e,
|
||||
|
|
Loading…
Reference in New Issue
Block a user