From e95e33ed3089469a2dda64a719c1dc0aed6607dc Mon Sep 17 00:00:00 2001 From: bdemsky Date: Mon, 18 Aug 2008 22:45:16 +0000 Subject: [PATCH] bug fix --- Robust/src/IR/Flat/BuildCode.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Robust/src/IR/Flat/BuildCode.java b/Robust/src/IR/Flat/BuildCode.java index 8781ff4e..dccd9c15 100644 --- a/Robust/src/IR/Flat/BuildCode.java +++ b/Robust/src/IR/Flat/BuildCode.java @@ -350,6 +350,7 @@ public class BuildCode { MethodDescriptor md=lb.getMethod(); FlatMethod fm=state.getMethodFlat(md); if (!md.getModifiers().isNative()) { + System.out.println("***"+fm); generateFlatMethod(fm, lb, outmethod); } } @@ -1928,6 +1929,14 @@ public class BuildCode { output.println(dst+"="+ src+"->"+field+";"); } } else if (status==LocalityAnalysis.LOCAL) { + if (ffn.getField().getType().isPtr()&& + ffn.getField().isGlobal()) { + String field=ffn.getField().getSafeSymbol(); + String src=generateTemp(fm, ffn.getSrc(),lb); + String dst=generateTemp(fm, ffn.getDst(),lb); + output.println(dst+"="+ src +"->"+field+ ";"); + output.println(dst+"=(void *) transRead(trans, (unsigned int) "+dst+");"); + } else output.println(generateTemp(fm, ffn.getDst(),lb)+"="+ generateTemp(fm,ffn.getSrc(),lb)+"->"+ ffn.getField().getSafeSymbol()+";"); } else if (status==LocalityAnalysis.EITHER) { //Code is reading from a null pointer -- 2.34.1