diff options
| author | Cliff Click <cliffc@acm.org> | 2024-10-13 16:50:30 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2024-10-14 08:52:32 -0700 |
| commit | eb18b6eab34d71a9041030959473c1ec0409c170 (patch) | |
| tree | 19fdc41d3c2b3c39d6dc3c651aede58fcf597b69 /chapter15/src/test/java/com/seaofnodes | |
| parent | f2be9faaef2f3fd4465924eaa0236fc832003469 (diff) | |
| download | Simple-eb18b6eab34d71a9041030959473c1ec0409c170.tar.gz Simple-eb18b6eab34d71a9041030959473c1ec0409c170.zip | |
fix lifetime issues with GVN gone wild
Diffstat (limited to 'chapter15/src/test/java/com/seaofnodes')
| -rw-r--r-- | chapter15/src/test/java/com/seaofnodes/simple/Chapter15Test.java | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/chapter15/src/test/java/com/seaofnodes/simple/Chapter15Test.java b/chapter15/src/test/java/com/seaofnodes/simple/Chapter15Test.java index 3a379084..6ec7cc1a 100644 --- a/chapter15/src/test/java/com/seaofnodes/simple/Chapter15Test.java +++ b/chapter15/src/test/java/com/seaofnodes/simple/Chapter15Test.java @@ -14,8 +14,7 @@ public class Chapter15Test { @Test public void testJig() { - Parser parser = new Parser( -""" + Parser parser = new Parser(""" return 3.14; """); StopNode stop = parser.parse().iterate(); @@ -24,6 +23,23 @@ return 3.14; } @Test + public void testLifetime() { + Parser parser = new Parser(""" +u8[] b = new u8[5]; +if (arg) { + b[0] = b[0] + 1; +} else { + b[1] = b[1] * 2; +} +return b[0] + b[1]; +"""); + StopNode stop = parser.parse().iterate(); + assertEquals("return Phi(Region69,1,0);", stop.toString()); + assertEquals(0L, Evaluator.evaluate(stop, 0)); + assertEquals(1L, Evaluator.evaluate(stop, 1)); + } + + @Test public void testCyclic() { Parser parser = new Parser( """ |
