aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjohnvg2015-07-21 13:29:12 +0000
committerjohnvg2015-07-21 13:29:12 +0000
commit2b2e39449677cb2bec315a8b68f4b8fbd1329335 (patch)
tree3a1a7a3f2d6b4e0aaaa998710b097e932d76a4f7
parentfix names and export labels of tuple selectors > 6 if exporting local labels (diff)
export label of node entry for Array methods for arrays of unboxed records if exporting local labels
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2582 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
-rw-r--r--backendC/CleanCompilerSources/instructions.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/backendC/CleanCompilerSources/instructions.c b/backendC/CleanCompilerSources/instructions.c
index fbf9e4b..295e6b0 100644
--- a/backendC/CleanCompilerSources/instructions.c
+++ b/backendC/CleanCompilerSources/instructions.c
@@ -3030,6 +3030,10 @@ void GenArrayFunctionDescriptor (SymbDef arr_fun_def, Label desclab, int arity)
if (ExportLocalLabels){
put_directive_ (Dexport);
FPrintF (OutFile,"e_%s_" D_PREFIX "%s",CurrentModule,name);
+ if (arr_fun_def->sdef_mark & SDEF_USED_LAZILY_MASK){
+ put_directive_ (Dexport);
+ FPrintF (OutFile,"e_%s_" N_PREFIX "%s",CurrentModule,name);
+ }
}
descriptor_label=*desclab;
@@ -3605,7 +3609,7 @@ void GenSelectorDescriptor (Label sellab,int element_n)
put_directive_ (Dexport);
FPrintF (OutFile, "e_%s_%s%s.%d",sellab->lab_mod, sellab->lab_pref, name, sellab->lab_post);
- put_directive_ (Ddescs);
+ put_directive_ (Ddescs);
FPrintF (OutFile, "e_%s_" D_PREFIX "%s.%d e_%s_%s%s.%d _ %d 0 \"%s.%d\"",
sellab->lab_mod, name, sellab->lab_post,
sellab->lab_mod, sellab->lab_pref, name, sellab->lab_post,
@@ -3613,11 +3617,11 @@ void GenSelectorDescriptor (Label sellab,int element_n)
name, sellab->lab_post);
} else {
put_directive_ (Ddescs);
- FPrintF (OutFile, D_PREFIX "%s.%d %s%s.%d _ %d 0 \"%s.%d\"",
- sellab->lab_name, sellab->lab_post,
- sellab->lab_pref, sellab->lab_name, sellab->lab_post,
- element_n+1,
- sellab->lab_name, sellab->lab_post);
+ FPrintF (OutFile, D_PREFIX "%s.%d %s%s.%d _ %d 0 \"%s.%d\"",
+ sellab->lab_name, sellab->lab_post,
+ sellab->lab_pref, sellab->lab_name, sellab->lab_post,
+ element_n+1,
+ sellab->lab_name, sellab->lab_post);
}
}
#else