diff options
author | johnvg | 2002-10-31 12:08:56 +0000 |
---|---|---|
committer | johnvg | 2002-10-31 12:08:56 +0000 |
commit | acad69ea43c3a63555d4577e0ea754989296fd89 (patch) | |
tree | e04be0d434c68f5b494285880ad3cee585ef8b59 /backendC/CleanCompilerSources | |
parent | bug fix for boxed records and ! record selections, (diff) |
bug fix for boxed records and ! record selections
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1264 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'backendC/CleanCompilerSources')
-rw-r--r-- | backendC/CleanCompilerSources/codegen2.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/backendC/CleanCompilerSources/codegen2.c b/backendC/CleanCompilerSources/codegen2.c index b3054ac..2b1cb6a 100644 --- a/backendC/CleanCompilerSources/codegen2.c +++ b/backendC/CleanCompilerSources/codegen2.c @@ -1234,7 +1234,10 @@ static void FillOrReduceFieldSelection (Node node,SymbDef seldef,int *asp_p,int record_state_p=&seldef->sdef_type->type_lhs->ft_symbol->symb_def->sdef_record_state; #if BOXED_RECORDS - if (arg->arg_state.state_type==SimpleState){ + if (node->node_arity<SELECTOR_L ? + arg->arg_state.state_type==SimpleState : + arg->arg_state.state_type==TupleState && arg->arg_state.state_tuple_arguments[0].state_type==SimpleState + ){ if (node->node_arity<SELECTOR_L) PushField (*record_state_p,fieldnr,0,asp_p,bsp_p,&asize,&bsize); else |