aboutsummaryrefslogtreecommitdiff
path: root/backendC/CleanCompilerSources/backend.c
diff options
context:
space:
mode:
Diffstat (limited to 'backendC/CleanCompilerSources/backend.c')
-rw-r--r--backendC/CleanCompilerSources/backend.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/backendC/CleanCompilerSources/backend.c b/backendC/CleanCompilerSources/backend.c
index e8215a2..b309c13 100644
--- a/backendC/CleanCompilerSources/backend.c
+++ b/backendC/CleanCompilerSources/backend.c
@@ -583,8 +583,13 @@ BEBindSpecialFunction (BESpecialIdentIndex index, int functionIndex, int moduleI
Assert ((unsigned int) functionIndex < module->bem_nFunctions);
functionSymbol = &module->bem_functions [functionIndex];
- if (functionSymbol->symb_kind == definition)
+ if (functionSymbol->symb_kind == definition){
*gSpecialIdents [index] = functionSymbol->symb_def->sdef_ident;
+
+ if (index==BESpecialIdentSeq && moduleIndex!=main_dcl_module_n){
+ functionSymbol->symb_kind=seq_symb;
+ }
+ }
} /* BEBindSpecialFunction */
extern SymbDefP special_types[]; /* defined in statesgen */
@@ -3630,7 +3635,6 @@ CheckBEEnumTypes (void)
Assert (apply_symb == BEApplySymb);
Assert (if_symb == BEIfSymb);
Assert (fail_symb == BEFailSymb);
- Assert (all_symb == BEAllSymb);
Assert (select_symb == BESelectSymb);
Assert (Nr_Of_Predef_FunsOrConses == BENrOfPredefFunsOrConses);
Assert (definition == BEDefinition);
@@ -3787,6 +3791,11 @@ BEInit (int argc)
gSpecialIdents [BESpecialIdentAnd] = &AndId;
gSpecialIdents [BESpecialIdentOr] = &OrId;
+ PreludeId = Identifier ("Prelude");
+ seq_id = NULL;
+ gSpecialIdents[BESpecialIdentPrelude] = &PreludeId;
+ gSpecialIdents[BESpecialIdentSeq] = &seq_id;
+
UserDefinedArrayFunctions = NULL;
#if STRICT_LISTS
unboxed_record_cons_list=NULL;