added test script
[IRC.git] / Robust / src / IR / Flat / BuildCode.java
index 78989dd31f180147650aa448a489121112e09eba..ea8bd2f5f797e14868c20f4df875ffd53f1818ae 100644 (file)
@@ -636,6 +636,12 @@ public class BuildCode {
            type="void *";
        else 
            type=elementtype.getSafeSymbol()+" ";
+
+       if (fen.needsBoundsCheck()) {
+           output.println("if ("+generateTemp(fm, fen.getIndex())+"< 0 || "+generateTemp(fm, fen.getIndex())+" >= "+generateTemp(fm,fen.getSrc()) + "->___length___)");
+           output.println("failedboundschk();");
+       }
+
        output.println(generateTemp(fm, fen.getDst())+"=(("+ type+"*)(((char *) &("+ generateTemp(fm,fen.getSrc())+"->___length___))+sizeof(int)))["+generateTemp(fm, fen.getIndex())+"];");
     }
 
@@ -650,6 +656,11 @@ public class BuildCode {
        else 
            type=elementtype.getSafeSymbol()+" ";
 
+       if (fsen.needsBoundsCheck()) {
+           output.println("if ("+generateTemp(fm, fsen.getIndex())+"< 0 || "+generateTemp(fm, fsen.getIndex())+" >= "+generateTemp(fm,fsen.getDst()) + "->___length___)");
+           output.println("failedboundschk();");
+       }
+
        output.println("(("+type +"*)(((char *) &("+ generateTemp(fm,fsen.getDst())+"->___length___))+sizeof(int)))["+generateTemp(fm, fsen.getIndex())+"]="+generateTemp(fm,fsen.getSrc())+";");
     }