Bug fixes...
[IRC.git] / Robust / src / IR / Flat / BuildCode.java
index 7a123a216750f79bbdefe2b8a8f66ef6634e2da0..e3394adc5ff1e9e152c6defa3bb92885030bbd93 100644 (file)
@@ -1181,7 +1181,12 @@ public class BuildCode {
 
     private void generateFlatCastNode(FlatMethod fm, FlatCastNode fcn, PrintWriter output) {
        /* TODO: Do type check here */
-       output.println(generateTemp(fm,fcn.getDst())+"=("+fcn.getType().getSafeSymbol()+")"+generateTemp(fm,fcn.getSrc())+";");
+       if (fcn.getType().isArray()) {
+           ;
+       } else if (fcn.getType().isClass())
+           output.println(generateTemp(fm,fcn.getDst())+"=(struct "+fcn.getType().getSafeSymbol()+" *)"+generateTemp(fm,fcn.getSrc())+";");
+       else
+           output.println(generateTemp(fm,fcn.getDst())+"=("+fcn.getType().getSafeSymbol()+")"+generateTemp(fm,fcn.getSrc())+";");
     }
 
     private void generateFlatLiteralNode(FlatMethod fm, FlatLiteralNode fln, PrintWriter output) {