diff options
Diffstat (limited to 'src/spiglet')
-rw-r--r-- | src/spiglet/spiglet2kanga/SpgExpr.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/spiglet/spiglet2kanga/SpgExpr.java b/src/spiglet/spiglet2kanga/SpgExpr.java index 9f5fef9..a93601d 100644 --- a/src/spiglet/spiglet2kanga/SpgExpr.java +++ b/src/spiglet/spiglet2kanga/SpgExpr.java @@ -55,15 +55,22 @@ public class SpgExpr extends SpgSym { public HashSet<SpgTemp> getTmpUsed() { HashSet<SpgTemp> s = new HashSet<SpgTemp>(); + HashSet<SpgTemp> stmp; switch (type) { case ALLOC: return se.getTmpUsed(); case BinOp: s.add(oprand); - s.addAll(se.getTmpUsed()); + stmp = se.getTmpUsed(); + if (stmp!=null) { + s.addAll(se.getTmpUsed()); + } return s; case CALL: - s.addAll(se.getTmpUsed()); + stmp = se.getTmpUsed(); + if (stmp!=null) { + s.addAll(se.getTmpUsed()); + } s.addAll(callParams); return s; case Simple: |