From 53b619f80589665b4d866b370dd22cd96ac7de1e Mon Sep 17 00:00:00 2001 From: Jean Privat Date: Wed, 27 May 2015 16:05:41 -0400 Subject: [PATCH] compiler: runtime error (instead of noop) on dead/invalid code Signed-off-by: Jean Privat --- src/compiler/abstract_compiler.nit | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/compiler/abstract_compiler.nit b/src/compiler/abstract_compiler.nit index 8d3f7db..b69a049 100644 --- a/src/compiler/abstract_compiler.nit +++ b/src/compiler/abstract_compiler.nit @@ -1637,8 +1637,9 @@ abstract class AbstractCompilerVisitor if nexpr == null then return if nexpr.mtype == null and not nexpr.is_typed then # Untyped expression. - # Might mean dead code - # So just return + # Might mean dead code or invalid code + # so aborts + add_abort("FATAL: bad statement executed.") return end @@ -1662,8 +1663,10 @@ abstract class AbstractCompilerVisitor do if nexpr.mtype == null then # Untyped expression. - # Might mean dead code - # so return a placebo result + # Might mean dead code or invalid code. + # so aborts + add_abort("FATAL: bad expression executed.") + # and return a placebo result to please the C compiler if mtype == null then mtype = compiler.mainmodule.object_type return new_var(mtype) end -- 1.7.9.5