aboutsummaryrefslogtreecommitdiff
path: root/backendC
diff options
context:
space:
mode:
authorjohnvg2013-08-22 12:26:28 +0000
committerjohnvg2013-08-22 12:26:28 +0000
commit2a71e0ee26c37a67fd1112570a76331e9a23af07 (patch)
treec36ee38bcd8349379e7de0e6f887db9a8ecf7d50 /backendC
parentprevent infinite loop when fusing trivial tail recursive functions (e.g. unde... (diff)
bug fix: don't use jmp_eval_upd for record fields of an abstract type
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2285 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'backendC')
-rw-r--r--backendC/CleanCompilerSources/codegen1.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/backendC/CleanCompilerSources/codegen1.c b/backendC/CleanCompilerSources/codegen1.c
index 6ab9088..eaf9fbf 100644
--- a/backendC/CleanCompilerSources/codegen1.c
+++ b/backendC/CleanCompilerSources/codegen1.c
@@ -1065,7 +1065,11 @@ static void GenLazyFieldSelectorEntry (SymbDef field_def,StateS recstate,int tot
GenRtn (1,0,OnAState);
} else {
if (IsLazyState (offfieldstate)){
- if (ExpectsResultNode (demfieldstate))
+ if (ExpectsResultNode (demfieldstate)
+#if ABSTRACT_OBJECT
+ && demfieldstate.state_object!=AbstractObj
+#endif
+ )
GenJmpEvalUpdate ();
else {
GenJsrEval (0);