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