aboutsummaryrefslogtreecommitdiff
path: root/backendC/CleanCompilerSources
diff options
context:
space:
mode:
authorjohnvg2002-10-31 12:08:56 +0000
committerjohnvg2002-10-31 12:08:56 +0000
commitacad69ea43c3a63555d4577e0ea754989296fd89 (patch)
treee04be0d434c68f5b494285880ad3cee585ef8b59 /backendC/CleanCompilerSources
parentbug 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.c5
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