aboutsummaryrefslogtreecommitdiff
path: root/backendC/CleanCompilerSources/instructions.c
diff options
context:
space:
mode:
Diffstat (limited to 'backendC/CleanCompilerSources/instructions.c')
-rw-r--r--backendC/CleanCompilerSources/instructions.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/backendC/CleanCompilerSources/instructions.c b/backendC/CleanCompilerSources/instructions.c
index 9e29575..b2d380b 100644
--- a/backendC/CleanCompilerSources/instructions.c
+++ b/backendC/CleanCompilerSources/instructions.c
@@ -3393,6 +3393,31 @@ void GenNoMatchError (SymbDef sdef,int asp,int bsp,int string_already_generated)
}
}
+#if CLEAN2
+void GenCaseNoMatchError (SymbDefP case_def,int asp,int bsp)
+{
+ static int case_number;
+
+ GenPopA (asp);
+ GenPopB (bsp);
+
+ put_instruction_b (pushD);
+ FPrintF (OutFile, "m_%s", CurrentModule);
+
+ put_instruction_b (pushD);
+ FPrintF (OutFile, "case_fail%u",case_number);
+
+ GenJmp (&match_error_lab);
+
+ put_directive_ (Dstring);
+ FPrintF (OutFile, "case_fail%u \"",case_number);
+ PrintSymbolOfIdent (case_def->sdef_ident,case_def->sdef_line,OutFile);
+ FPrintF (OutFile, "\"");
+
+ case_number++;
+}
+#endif
+
static void GenImpLab (char *label_name)
{
put_directive_b (implab);