CSC448: Program Analysis I: Does a Block Return Anything? II [91/133] |
A simple graph algorithm suffices.
Implementation: file:CheckReturns.java
file:test024.hob
fails (even if we initialise b
):
$ java hobbes.Compile tests/test024.hob PHASE: BuildDiagrams PHASE: CheckReturns Exception in thread "main" hobbes.checks.CheckException: entry may fail to return at hobbes.controlflow.CheckReturns.checkBlock(CheckReturns.java:57) at hobbes.controlflow.CheckReturns.checkReturns(CheckReturns.java:40) at hobbes.Compile.checkReturns(Compile.java:176) at hobbes.Compile.main(Compile.java:90)