From 357b399ad15c2192fc3852df8a3aa7982d55cfa3 Mon Sep 17 00:00:00 2001 From: johnvg Date: Fri, 19 Dec 2008 12:53:35 +0000 Subject: add ExitEnv_valid git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1714 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d --- backendC/CleanCompilerSources/backend.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/backendC/CleanCompilerSources/backend.c b/backendC/CleanCompilerSources/backend.c index edeef7e..ff740e1 100644 --- a/backendC/CleanCompilerSources/backend.c +++ b/backendC/CleanCompilerSources/backend.c @@ -3269,6 +3269,8 @@ AddExtension (char *name) File rules_file; #endif +struct clean_string_128 { size_t length; char chars[128]; } clean_error_string; + int BEGenerateCode (CleanString outputFile) { @@ -3276,9 +3278,18 @@ BEGenerateCode (CleanString outputFile) ImpRule rule; Bool hadExtension; + clean_error_string.length=0; + if (CompilerError) return False; + if (setjmp (ExitEnv)!=0){ + ExitEnv_valid=0; + return False; + } + + ExitEnv_valid=1; + // RemoveSpecialArrayFunctionsFromSymbolList (&gBEState.be_icl.beicl_module->im_symbols); /* +++ hack */ @@ -3324,9 +3335,16 @@ BEGenerateCode (CleanString outputFile) fclose (rules_file); #endif + ExitEnv_valid=0; + return (!CompilerError); } /* BEGenerateCode */ +CleanString BEGetError (void) +{ + return (CleanString)&clean_error_string; +} + void BEExportType (int isDictionary, int typeIndex) { @@ -3690,6 +3708,8 @@ BEInit (int argc) { Assert (!gBEState.be_initialised); + ExitEnv_valid=0; + CurrentPhase = "Back End"; CurrentModule = ""; CurrentExt = ""; -- cgit v1.2.3