Jump to content
Excelsior Forums
AlexIljin

Compiler bug: invalid case in CASE statement

Recommended Posts

Module text:

MODULE Test;

(* ------------------------------------------------------------------------

* © 2011 by Alexander Iljin

* ------------------------------------------------------------------------ *)

VAR

tmp: SHORTINT; (* any integer type will do *)

BEGIN

INC(tmp, LONG(1000000)); (* Compiler breaks with error F450: "compilation

* aborted: invalid case in CASE statement".

* Remove "LONG" and it will work. *)

END Test.

Compilation:

>xc Test.ob2

XDS Oberon-2 v2.40 [x86, v1.50] - build 10.05.2005

Compiling "Test.ob2"

* [*** 0.00 F450]

* compilation aborted: invalid case in CASE statement

Share this post


Link to post
Share on other sites

Столкнулся с такой же проблемой оригинального компилятора ETH.

По моему ошибка должна возникать не только для LONG функции но и для всех конструкций вроде:

INC(tmp, SIZE(LONGINT)); и т.д. То есть для вложенных системных функций.

Это ошибка функции OPP.StandProcCall возникает по моему, если вносятся изменения в работу сканера

компилятора OPS.Get (хотя на вскидку не помню)

К стати проблема реальная, так как на подобных структурах кода запросто может не возникнуть данное

предупреждение, но генерируемый код будет не верным.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×