Warnings
MPW Oberon produces warnings to indicate problems that are not considered as
errors. You should not ignore these warnings and try to change your program so
that no warnings will be reported. Use the -w option to disable output of
warnings.
The following table lists all warnings produced by MPW Oberon in numerical order.
A short description for each warning is given to help you spot the problem. You
may notice, that all options hurting the speed of the compiled code (run-time
checks etc.) are set to maximize speed. If you want to include these checks
normally, use the Alias command to set your favorite options.
- 900 -- function should return a value
- A function procedure was encountered that contained no RETURN statement.
Calling this procedure will result in a run-time exception.
- 901 -- number of maximum inline-codes reached
- You may not specify more than 16 opcodes for an inline procedures. All other
opcodes will be ignored.
- 902 -- integer expected
- This warning is obsolete.
- 903 -- expression must be constant
- A constant expression was expected but an expression involving variables was
encountered. This warning is emitted if the expression following BY in a FOR
statement is not constant.
- 904 -- called procedure is not reachable (too nested)
- The indicated procedure can not be called because it is too deeply nested.
This is a compiler limitation. Restructure your program.
- 905 -- overflow in constant expression
- The evaluation of the constant expression produced an overflow error.
- 906 -- no conversion needed
- SYSTEM.VAL was applied and was not needed. The types of the two parameters
for SYSTEM.VAL were identical.
- 907 -- identifier declared but never used:
- The given identifier was declared but never used. It may be deleted without
any effect. This warning is written for constants, types, variables, procedures,
and modules.
- 908 -- variable is read-only
- The indicated identifier was exported read-only and may not be modified by
clients of the exporting module.
- 909 -- module SYSTEM is not imported
- Module SYSTEM must be imported in order to use INLINE or EXTERNAL.
- 910 -- too many segments
- You divided up your module into too many segments. You may only use 15
segments within a single module. This is a compiler restriction. Restructure your
program.
- 911 -- not compatible to standard Oberon
- Source text contains non-standard elements. You should avoid such features if
you intend to use the source code with a different compiler.
- 912 -- invalid pragma
- The specified pragma is not supported by MPW Oberon and ignored.
- 913 -- pascal procedure, parameter has no tagfield
- Within a procedure using the Pascal calling convention a type test was
encountered. Records are passed to procedures using the Pascal calling convention
without an accompanying type tag.
- 914 -- untagged pointer, type-test not allowed
- The dynamic variable refers to an untagged data type. Type test are not
allowed.
- 915 -- both pointers must be tagged or untagged
- There was an attempt to assign to pointers one referring to a tagged data
type and the other referring to an untagged data type. This is not allowed.
- 916 -- stack overflow
- Two many $PUSH directives are encountered. You may nest $PUSH directives up
to five times.
- 917 -- stack is empty
- More $POP directives than $PUSH directives were encountered.
- 918 -- too many forward-declarations
- There was an attempt the declare more than 30 forward procedures. This is a
compiler restriction. Restructure your program.
- 919 -- Possible use of Variable before definition
- The indicated variable was not assigned so far but is used in an expression.
A variable is considered assigned, if it was modified by an assignment or passed
to a procedure by reference.
- 920 -- Pragma Register does not match with Procedure declaration
- The number of parameters given in the registers directive and the
corresponding procedure declaration does not match. All parameters must be passed
in registers.
- 921 -- Pragma Register can only be used with INLINE-Procedures
- The passing of parameters in registers is only supported for INLINE
procedures. Do not use this directive otherwise.
- 922 -- Expression only allowed in Ulm´s-Oberon-Mode, use -ulm
option
- The indicated expression is only allowed if -ulm option is used. Compile the
module using this option.
- 923 -- value parameter in Pascal-procedures must be LONGREAL
- ΔΔElaborateΔΔ
- 924 -- not supported in mc68881-mode
- ΔΔElaborateΔΔ
- 925 -- calling pascal doesn't support value parameters from type real or
longreal
- There was an attempt to pass values of type REAL or LONGREAL to procedure
which uses the Pascal calling convention. This is a compiler restriction.
Restructure your program.
- 926 -- only supported in mc68881-mode
- The indicated function may be used only if the module is compiled with the
-mc68881 option.
- 927 -- Pascal-functions with real or longreal result not allowed
- A procedure using the Pascal calling convention must not return type REAL or
LONGREAL. This is a compiler restriction. Restructure your program.
- 928 -- longreal constants are not allowed in mc68881-mode
- The LONGREAL format is different when generating code for the MC68881.
LONGREAL is mapped to EXTENDED occupying either 10 for SANE or 12 bytes for
MC68881. This is a compiler restriction. Restructure your program.
- 929 -- symbol file has longreal constants, not allowed in mc68881-mode
- The indicated modules was compiled without the -mc68881 option but contains
some constants of type LONGREAL. These constants are not usable when the module
is imported with the -mc68881 option in effect.
- 930 -- too many branches in procedure, simplify procedure
- A single procedure contains more than 4096 branches. The procedure must be
split up into smaller procedures. This is a compiler restriction. Restructure
your program.
- 931 -- too many case-statements in procedure, simplify procedure
- A single procedure contains more than 256 CASE statements. The procedure must
be split up into smaller ones. This is a compiler restriction. Restructure your
program.
- 932 -- calling conventions must be identical
- There was an attempt to pass a procedure as a parameter with a different
calling convention than required by the parameter. Use the $CALLING directive to
adjust the calling convention of the procedure passed as the parameter.
- 933 -- invalid expression in pragma
- The expression within the indicated pragma could not be evaluated because it
is too complex. See "Compiler
directives" for a description of the allowable expressions.
- 934 -- $IF directives too deeply nested
- Directives for conditional compilation may only be nested up to 32 levels.
This is a compiler restriction. Restructure your program.
- 935 -- record not exported, but following record-field exported
- Some fields of a record are exported while the records was not exported. You
should export the record too.
- 936 -- too many compiler-variables
- There was an attempt to define more than 20 compiler variables. This is a
compiler restriction.
- 937 -- compiler variable too long
- The name of a compiler variable must not contain more than 15 characters.
This is a compiler restriction. Use a shorter name.
- 938 -- invalid value for compiler variable, only true or false allowed:
- Compiler variables may hold BOOLEAN values only. This is a compiler
restriction.
- 939 -- undefined compiler variable (set to FALSE)
- The indicated compiler variable was not defined. It is defined by the
compiler an initialized to FALSE. You should define the variable yourself.
- 940 -- type-test with untagged pointer
- A type test must not be applied to an untagged pointer.
- 941 -- variable is a register-variable, no address available
- The indicated variable was assigned a register. The SYSTEM.ADR function is
not applicable. Use the $REGVAR- directive to disable the usage of register
variables.
- 942 -- variable declared as VAR parameter, but was not modified
- The indicated variable was declared as a reference parameter, but it was not
modified within the procedures body. You may change the procedure's declaration
to specify a call-by-value parameter.
- 943 -- modulename missing
- An identifier is not defined in the current module but is defined only in one
imported module. You should change your source text and give the full qualifier
although this is not necessary.
Note: You may drop module identifiers where MPW Oberon is able to supply
this identifier. This facility is useful for porting Pascal programs to Oberon.
It is not standard Oberon.
- 944 -- more than one modulename possible
- An identifier is defined in the current module but is defined in more than
one imported module. You should change your source text and give the full
qualifier to indicate what imported object to use.
Note: If you do not specify the missing module identifier, MPW Oberon
supplies the first name from the list of modules found. You should not depend on
this facility and specify the module you desire.
- 945 -- unknown directive
- An unknown compiler directive was encountered. Unknown directives are ignored
but you should them anyway.
- 946 -- directive must be followed by '+' or '-'
- The indicated directive must be followed by either `+' or `-' to change its
value. The directive is ignored. The value of the corresponding variable is not
changed.
- 947 -- invalid compile-time expression
- An invalid compile-time expression was encountered. The corresponding
directive will be ignored. This will probably lead to subsequent errors in the
remaining part of the source text especially if a directive for conditional
compilation was ignored.
Previous Section, Next Section, Contents
Jürgen Geßwein; 2. Juni 1995