From b6fe62299e8561e2bc416cc5730162aceda8d6b4 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Mon, 19 Jul 2010 19:56:00 -0400 Subject: [PATCH] compiler.cfg.alias-analysis: factor-call-insns which defined values were not handled properly --- .../cfg/alias-analysis/alias-analysis.factor | 1 + basis/compiler/tests/alien.factor | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/basis/compiler/cfg/alias-analysis/alias-analysis.factor b/basis/compiler/cfg/alias-analysis/alias-analysis.factor index dbceb24968..5ba0bd1300 100644 --- a/basis/compiler/cfg/alias-analysis/alias-analysis.factor +++ b/basis/compiler/cfg/alias-analysis/alias-analysis.factor @@ -299,6 +299,7 @@ M: ##compare analyze-aliases \ ##alien-global set-new-ac ; M: factor-call-insn analyze-aliases + call-next-method heap-ac get ac>vregs [ [ live-slots get at clear-assoc ] [ recent-stores get at clear-assoc ] bi diff --git a/basis/compiler/tests/alien.factor b/basis/compiler/tests/alien.factor index f263e1e0f8..d2c51c2302 100755 --- a/basis/compiler/tests/alien.factor +++ b/basis/compiler/tests/alien.factor @@ -6,7 +6,7 @@ math memory namespaces namespaces.private parser quotations sequences specialized-arrays stack-checker stack-checker.errors system threads tools.test words alien.complex concurrency.promises alien.data -byte-arrays classes ; +byte-arrays classes compiler.test ; FROM: alien.c-types => float short ; SPECIALIZED-ARRAY: float SPECIALIZED-ARRAY: char @@ -804,3 +804,20 @@ mingw? [ ] with-out-parameters ; [ 12 ] [ 6 out-param-callback out-param-indirect ] unit-test + +! Alias analysis regression +: aa-callback-1 ( -- c ) + double { } cdecl [ 5.0 ] alien-callback ; + +: aa-indirect-1 ( c -- x ) + double { } cdecl alien-indirect ; inline + +TUPLE: some-tuple x ; + +[ T{ some-tuple f 5.0 } ] [ + [ + some-tuple new + aa-callback-1 + aa-indirect-1 >>x + ] compile-call +] unit-test