return flag to indicate errors
[repair.git] / Repair / RepairCompiler / MCC / IR / RepairGenerator.java
index 8d095b69fcea6977de12c38d02ecf4ddae8bff8e..35925f35c0b2ba6309cc93fc7a1f837755552638 100755 (executable)
@@ -107,6 +107,7 @@ public class RepairGenerator {
         generate_teardown();
        CodeWriter crhead = new StandardCodeWriter(this.outputhead);
        craux = new StandardCodeWriter(this.outputaux);
+       craux.outputline("return noerrors;");
        craux.emptyBuffer();
        craux.endblock();
 
@@ -544,10 +545,12 @@ public class RepairGenerator {
            craux.outputline("int abstractcount;");
        }
 
-       crhead.outputline("void doanalysis"+postfix+"(struct "+name+"_state *);");
-       craux.outputline("void doanalysis"+postfix+"(struct "+name+"_state * thisvar)");
+       crhead.outputline("int doanalysis"+postfix+"(struct "+name+"_state *);");
+       craux.outputline("int doanalysis"+postfix+"(struct "+name+"_state * thisvar)");
+
        craux.startblock();
        craux.outputline("int highmark;"); /* This declaration is special...need it to be first */
+       craux.outputline("int noerrors=1;");
        craux.startBuffer();
 
        if (Compiler.TIME) {
@@ -931,11 +934,13 @@ public class RepairGenerator {
                 cr.outputline("if (maybe)");
                 cr.startblock();
                 cr.outputline("printf(\"maybe fail " +  escape(constraint.toString()) + ". \\n\");");
+               cr.outputline("noerrors=0;");
                //cr.outputline("exit(1);");
                 cr.endblock();
 
                 cr.outputline("else if (!" + constraintboolean.getSafeSymbol() + ")");
                 cr.startblock();
+               cr.outputline("noerrors=0;");
                 if (!Compiler.REPAIR||Compiler.GENERATEDEBUGHOOKS)
                    cr.outputline("printf(\"fail " + escape(constraint.toString()) + ". \\n\");");