@Test public void testJoin8() { Stamp bExact = StampFactory.exactNonNull(getType(B.class)); Stamp dExact = StampFactory.exact(getType(D.class)); Stamp join = join(bExact, dExact); Assert.assertFalse(join.isLegal()); }
@Test public void testJoin6() { Stamp dExactNonNull = StampFactory.exactNonNull(getType(D.class)); Stamp alwaysNull = StampFactory.alwaysNull(); Stamp join = join(alwaysNull, dExactNonNull); Assert.assertFalse(join.isLegal()); Assert.assertFalse(StampTool.isPointerNonNull(join)); Assert.assertFalse(StampTool.isPointerAlwaysNull(join)); }
public Stamp getReturnStamp() { Stamp returnStamp = null; for (ReturnNode returnNode : getNodes(ReturnNode.TYPE)) { ValueNode result = returnNode.result(); if (result != null) { if (returnStamp == null) { returnStamp = result.stamp(); } else { returnStamp = returnStamp.meet(result.stamp()); } } } return returnStamp; }
@Override public boolean inferStamp() { return updateStamp(piStamp.improveWith(object().stamp())); }