diff options
author | johnvg | 2015-07-21 13:29:12 +0000 |
---|---|---|
committer | johnvg | 2015-07-21 13:29:12 +0000 |
commit | 2b2e39449677cb2bec315a8b68f4b8fbd1329335 (patch) | |
tree | 3a1a7a3f2d6b4e0aaaa998710b097e932d76a4f7 | |
parent | fix 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.c | 16 |
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 |