|
@@ -44,6 +44,12 @@
|
|
|
\item If the previous two don't work, recompile the compiler with a bigger
|
|
|
heap (you can use the \var{-Ch} option for this, \seeo{Ch})
|
|
|
\end{itemize}
|
|
|
+\item [Info: Writing Resource String Table file: arg1]
|
|
|
+ This message is shown when the compiler writes the Resource String Table
|
|
|
+ file containing all the resource strings for a program.
|
|
|
+\item [Error: Writing Resource String Table file: arg1]
|
|
|
+ This message is shown when the compiler encountered an error when writing
|
|
|
+ the Resource String Table file
|
|
|
\end{description}
|
|
|
\section{Scanner messages.}
|
|
|
This section lists the messages that the scanner emits. The scanner takes
|
|
@@ -63,7 +69,7 @@
|
|
|
\item [Fatal: String exceeds line]
|
|
|
You forgot probably to include the closing ' in a string, so it occupies
|
|
|
multiple lines.
|
|
|
-\item [Fatal: illegal character]
|
|
|
+\item [Fatal: illegal character arg1 (arg2)]
|
|
|
An illegal character was encountered in the input file.
|
|
|
\item [Fatal: Syntax error, arg1 expected but arg2 found]
|
|
|
This indicates that the compiler expected a different token than
|
|
@@ -76,7 +82,7 @@
|
|
|
When the \var{-vw} switch is used, then the compiler warns you if
|
|
|
it finds nested comments. Nested comments are not allowed in Turbo Pascal
|
|
|
and can be a possible source of errors.
|
|
|
-\item [Note: directive (FAR) ignored]
|
|
|
+\item [Note: argF directive (FAR) ignored]
|
|
|
The \var{FAR} directive is a 16-bit construction which is recorgnised
|
|
|
but ignored by the compiler, since it produces 32 bit code.
|
|
|
\item [Note: Stack check is global under Linux]
|
|
@@ -101,13 +107,13 @@
|
|
|
statement.
|
|
|
\item [Error: Too many argENDIFs or argELSEs]
|
|
|
Your \var{\{\$IFDEF ..\}} and {\{\$ENDIF\}} statements aren't balanced.
|
|
|
-\item [Warning: Records fields can be aligned to 1,2,4 or 16 bytes only]
|
|
|
+\item [Warning: Records fields can be aligned to 1,2,4,8,16 or 32 bytes only]
|
|
|
You are specifying the \var{\{\$PACKRECORDS n\} } with an illegal value for
|
|
|
- \var{n}. Only 1,2,4 or 16 are valid in this case.
|
|
|
+ \var{n}. Only 1, 2, 4, 8, 16 and 32 are valid in this case.
|
|
|
\item [Warning: Enumerated can be saved in 1,2 or 4 bytes only]
|
|
|
You are specifying the \var{\{\$PACKENUM n\}} with an illegal value for
|
|
|
\var{n}. Only 1,2 or 4 are valid in this case.
|
|
|
-\item [Error: arg1 expected for arg2 defined in line arg3]
|
|
|
+\item [Error: argENDIF expected for arg1 arg2 defined in line arg3]
|
|
|
Your conditional compilation statements are unbalanced.
|
|
|
\item [Error: Syntax error while parsing a conditional compiling expression]
|
|
|
There is an error in the expression following the \var{\{\$if ..\}} compiler
|
|
@@ -187,6 +193,15 @@
|
|
|
with the directive \var{\{\$APPTYPE\}}
|
|
|
\item [Warning: APPTYPE isn't support by the target OS]
|
|
|
The \var{\{\$APPTYPE\}} directive is supported by win32 applications only.
|
|
|
+\item [Warning: DESCRIPTION is only supported for OS2 and Win32]
|
|
|
+ The \var{\{\$DESCRIPTION\}} directive is only supported for OS2 and Win32 targets.
|
|
|
+\item [Note: VERSION is not supported by target OS.]
|
|
|
+ The \var{\{\$VERSION\}} directive is only supported by win32 target.
|
|
|
+\item [Note: VERSION only for exes or DLLs]
|
|
|
+ The \var{\{\$VERSION\}} directive is only used for executable or DLL sources.
|
|
|
+\item [Warning: Wrong format for VERSION directive arg1]
|
|
|
+ The \var{\{\$VERSION\}} directive format is major_version.minor_version
|
|
|
+ where major_version and minor_version are words.
|
|
|
\item [Warning: Unsupported assembler style specified arg1]
|
|
|
When you specify an assembler mode with the \var{\{\$ASMMODE xxx\}}
|
|
|
the compiler didn't recognize the mode you specified.
|
|
@@ -197,9 +212,17 @@
|
|
|
\item [Error: Wrong switch toggle, use ON/OFF or +/-]
|
|
|
You need to use ON or OFF or a + or - to toggle the switch
|
|
|
\item [Error: Resource files are not supported for this target]
|
|
|
- The target you are compiling for doesn't support Resource files. The
|
|
|
- only target which can use resource files is Win32
|
|
|
-
|
|
|
+ The target you are compiling for doesn't support resource files. The
|
|
|
+ only targets which can use resource files are Win32 and OS/2 (EMX) currently
|
|
|
+\item [Warning: Include environment arg1 not found in environment]
|
|
|
+ The included environment variable can't be found in the environment, it'll
|
|
|
+ be replaced by an empty string instead.
|
|
|
+\item [Error: Illegal value for FPU register limit]
|
|
|
+ Valid values for this directive are 0..8 and NORMAL/DEFAULT
|
|
|
+\item [Warning: Only one resource file is supported for this target]
|
|
|
+ The target you are compiling for supports only one resource file. This is the
|
|
|
+ case of OS/2 (EMX) currently. The first resource file found is used, the
|
|
|
+ others are discarded.
|
|
|
\end{description}
|
|
|
\section{Parser messages}
|
|
|
This section lists all parser messages. The parser takes care of the
|
|
@@ -215,9 +238,17 @@
|
|
|
\item [Warning: Procedure type NEAR ignored]
|
|
|
This is a warning. \var{NEAR} is a construct for 8 or 16 bit programs. Since
|
|
|
the compile generates 32 bit programs, it ignores this directive.
|
|
|
-\item [Warning: Procedure type REGISTER ignored]
|
|
|
- This is a warning. \var{REGISTER} is ignored by FPC programs for now.
|
|
|
+\item [Warning: Procedure type INTERRUPT ignored for not i386]
|
|
|
+ This is a warning. \var{INTERRUPT} is a i386 specific construct
|
|
|
+ and is ignored for other processors.
|
|
|
+\item [Error: INTERRUPT procedure can't be nested]
|
|
|
+ An \VAR{INTERRUPT} procedure must be global.
|
|
|
+\item [Warning: Procedure type arg1 ignored]
|
|
|
+ This is a warning. \var{REGISTER},\var{REINTRODUCE} is ignored by FPC programs for now.
|
|
|
This is introduced first for Delphi compatibility.
|
|
|
+\item [Error: Not all declarations of arg1 are declared with OVERLOAD]
|
|
|
+ When you want to use overloading using the \var{OVERLOAD} directive, then
|
|
|
+ all declarations need to have \var{OVERLOAD} specified.
|
|
|
\item [Error: No DLL File specified]
|
|
|
No longer in use.
|
|
|
\item [Error: Duplicate exported function name arg1]
|
|
@@ -226,6 +257,10 @@
|
|
|
Exported function names inside a specific DLL must all be different
|
|
|
\item [Error: Invalid index for exported function]
|
|
|
DLL function index must be in the range \var{1..\$FFFF}
|
|
|
+\item [Warning: Relocatable DLL or executable arg1 debug info does not work, disabled.]
|
|
|
+\item [Warning: To allow debugging for win32 code you need to disable relocation with -WN option]
|
|
|
+ Stabs info is wrong for relocatable DLL or EXES use -WN
|
|
|
+ if you want to debug win32 executables.
|
|
|
\item [Error: Constructor name must be INIT]
|
|
|
You are declaring a constructor with a name which isn't \var{init}, and the
|
|
|
\var{-Ss} switch is in effect. See the \var{-Ss} switch (\seeo{Ss}).
|
|
@@ -280,7 +315,7 @@
|
|
|
declaration.
|
|
|
\item [Error: function header doesn't match the forward declaration arg1]
|
|
|
You declared a function with same parameters but
|
|
|
- different result type or function specifiers.
|
|
|
+ different result type or function modifiers.
|
|
|
\item [Error: function header arg1 doesn't match forward : var name changes arg2 => arg3]
|
|
|
You declared the function in the \var{interface} part, or with the
|
|
|
\var{forward} directive, but define it with a different parameter list.
|
|
@@ -433,7 +468,7 @@
|
|
|
\item [Error: methods can't be EXPORTed]
|
|
|
You cannot declare a procedure that is a method for an object as
|
|
|
\var{export}ed. That is, your methods cannot be called from a C program.
|
|
|
-\item [Error: call by var parameters have to match exactly]
|
|
|
+\item [Error: call by var parameters have to match exactly: Got arg1 expected arg2]
|
|
|
When calling a function declared with \var{var} parameters, the variables in
|
|
|
the function call must be of exactly the same type. There is no automatic
|
|
|
type conversion.
|
|
@@ -480,6 +515,12 @@
|
|
|
\item [Error: Operator is not overloaded]
|
|
|
You're trying to use an overloaded operator when it isn't overloaded for
|
|
|
this type.
|
|
|
+\item [Error: Impossible to overload assignment for equal types]
|
|
|
+ You can not overload assignment for types
|
|
|
+ that the compiler considers as equal.
|
|
|
+\item [Error: Impossible operator overload]
|
|
|
+ The combination of operator, arguments and return type are
|
|
|
+ incompatible.
|
|
|
\item [Error: Re-raise isn't possible there]
|
|
|
You are trying to raise an exception where it isn't allowed. You can only
|
|
|
raise exceptions in an \var{except} block.
|
|
@@ -563,11 +604,17 @@
|
|
|
\item [Info: Compiling arg1]
|
|
|
When you turn on information messages (\var{-vi}), the compiler tells you
|
|
|
what units it is recompiling.
|
|
|
+\item [Parsing interface of unit arg1]
|
|
|
+ This tells you that the reading of the interface
|
|
|
+ of the current unit starts
|
|
|
+\item [Parsing implementation of arg1]
|
|
|
+ This tells you that the code reading of the implementation
|
|
|
+ of the current unit, library or program starts
|
|
|
\item [Compiling arg1 for the second time]
|
|
|
When you request debug messages (\var{-vd}) the compiler tells you what
|
|
|
units it recompiles for the second time.
|
|
|
-\item [Error: Array properties aren't allowed at this point]
|
|
|
- You cannot use array properties at that point.a
|
|
|
+\item [Error: Array properties aren't allowed here]
|
|
|
+ You cannot use array properties at that point in the source.
|
|
|
\item [Error: No property found to override]
|
|
|
You want to overrride a property of a parent class, when there is, in fact,
|
|
|
no such property in the parent class.
|
|
@@ -606,7 +653,7 @@
|
|
|
This procedure directive is not defined in the \var{implementation} section of
|
|
|
a unit. You can only use it in the \var{interface} section.
|
|
|
\item [Error: Procedure directive arg1 not allowed in procvar declaration]
|
|
|
- This procedure directive cannot be part of a procedural of function
|
|
|
+ This procedure directive cannot be part of a procedural or function
|
|
|
type declaration.
|
|
|
\item [Error: Function is already declared Public/Forward arg1]
|
|
|
You will get this error if a function is defined as \var{forward} twice.
|
|
@@ -644,7 +691,7 @@
|
|
|
\item [Error: Property can't have a default value]
|
|
|
Set properties or indexed properties cannot have a default value.
|
|
|
\item [Error: The default value of a property must be constant]
|
|
|
- The value of a \var{default} declared property must be knwon at compile
|
|
|
+ The value of a \var{default} declared property must be known at compile
|
|
|
time. The value you specified is only known at run time. This happens
|
|
|
.e.g. if you specify a variable name as a default value.
|
|
|
\item [Error: Symbol can't be published, can be only a class]
|
|
@@ -656,9 +703,11 @@
|
|
|
section must be an ordinal type, a real type, strings or sets.
|
|
|
\item [Warning: Empty import name specified]
|
|
|
Both index and name for the import are 0 or empty
|
|
|
-\item [Warning: Empty import name specified]
|
|
|
+\item [Warning: An import name is required]
|
|
|
Some targets need a name for the imported procedure or a cdecl specifier
|
|
|
\item [Error: Function internal name changed after use of function]
|
|
|
+ This is an internal error; please report any occurrences of this error
|
|
|
+ to the \fpc team.
|
|
|
\item [Error: Division by zero]
|
|
|
There is a divsion by zero encounted
|
|
|
\item [Error: Invalid floating point operation]
|
|
@@ -667,6 +716,9 @@
|
|
|
\item [Error: Upper bound of range is less than lower bound]
|
|
|
The upper bound of a \var{case} label is less than the lower bound and this
|
|
|
is not possible
|
|
|
+\item [Warning: string "arg1" is longer than arg2]
|
|
|
+ The size of the constant string is larger than the size you specified in
|
|
|
+ string type definition
|
|
|
\item [Error: string length is larger than array of char length]
|
|
|
The size of the constant string is larger than the size you specified in
|
|
|
the array[x..y] of char definition
|
|
@@ -679,8 +731,8 @@
|
|
|
\item [Error: Duplicate message label: arg1]
|
|
|
A label for a message is used twice in one object/class
|
|
|
\item [Error: Self can be only an explicit parameter in message handlers]
|
|
|
- The self parameter can be passed only explicit if it is a method which
|
|
|
- is declared as message method handler
|
|
|
+ The self parameter can be passed only explicitly in a method which
|
|
|
+ is declared as message method handler.
|
|
|
\item [Error: Threadvars can be only static or global]
|
|
|
Threadvars must be static or global, you can't declare a thread
|
|
|
local to a procedure. Local variables are always local to a thread,
|
|
@@ -701,6 +753,41 @@
|
|
|
Some data type (e.g. \var{ansistring}) needs initialization/finalization
|
|
|
code which is implicitly generated by the compiler. Such data types
|
|
|
can't be used in the variant part of a record.
|
|
|
+\item [Error: Resourcestrings can be only static or global]
|
|
|
+ Resourcestring can not be declared local, only global or using the static
|
|
|
+ directive.
|
|
|
+\item [Error: Exit with argument can't be used here]
|
|
|
+ an exit statement with an argument for the return value can't be used here, this
|
|
|
+ can happen e.g. in \var{try..except} or \var{try..finally} blocks
|
|
|
+\item [Error: The type of the storage symbol must be boolean]
|
|
|
+ If you specify a storage symbol in a property declaration, it must be of
|
|
|
+ the type boolean
|
|
|
+\item [Error: This symbol isn't allowed as storage symbol]
|
|
|
+ You can't use this type of symbol as storage specifier in property
|
|
|
+ declaration. You can use only methods with the result type boolean,
|
|
|
+ boolean class fields or boolean constants
|
|
|
+\item [Error: Only class which are compiled in argM+ mode can be published]
|
|
|
+ In the published section of a class can be only class as fields used which
|
|
|
+ are compiled in $M+ or which are derived from such a class. Normally
|
|
|
+ such a class should be derived from TPersitent
|
|
|
+\item [Error: Procedure directive expected]
|
|
|
+ When declaring a procedure in a const block you used a ; after the
|
|
|
+ procedure declaration after which a procedure directive must follow.
|
|
|
+ Correct declarations are:
|
|
|
+ \begin{verbatim}
|
|
|
+ const
|
|
|
+ p : procedure;stdcall=nil;
|
|
|
+ p : procedure stdcall=nil;
|
|
|
+ \end{verbatim}
|
|
|
+\item [Error: The value for a property index must be of an ordinal type]
|
|
|
+ The value you use to index a property must be of an ordinal type, for
|
|
|
+ example an integer or enumerated type.
|
|
|
+\item [Error: Procedure name to short to be exported]
|
|
|
+ The length of the procedure/function name must be at least 2 characters
|
|
|
+ long. This is because of a bug in dlltool which doesn't parse the .def
|
|
|
+ file correct with a name of length 1.
|
|
|
+\item [Error: No DEFFILE entry can be generated for unit global vars]
|
|
|
+\item [Error: Compile without -WD option]
|
|
|
\end{description}
|
|
|
\section{Type checking errors}
|
|
|
This section lists all errors that can occur when type checking is
|
|
@@ -730,23 +817,26 @@
|
|
|
\end{verbatim}
|
|
|
\item [Error: Type mismatch between arg1 and arg2]
|
|
|
The types are not equal
|
|
|
-\item [Error: Integer expression expected]
|
|
|
+\item [Error: Type identifier expected]
|
|
|
+ The identifier is not a type, or you forgot to supply a type identifier.
|
|
|
+\item [Error: Variable identifier expected]
|
|
|
+ This happens when you pass a constant to a \var{Inc} var or \var{Dec}
|
|
|
+ procedure. You can only pass variables as arguments to these functions.
|
|
|
+\item [Error: Integer expression expected, but got "arg1"]
|
|
|
The compiler expects an expression of type integer, but gets a different
|
|
|
type.
|
|
|
+\item [Error: Boolean expression expected, but got "arg1"]
|
|
|
+ The expression must be a boolean type, it should be return true or
|
|
|
+ false.
|
|
|
\item [Error: Ordinal expression expected]
|
|
|
The expression must be of ordinal type, i.e., maximum a \var{Longint}.
|
|
|
This happens, for instance, when you specify a second argument
|
|
|
to \var{Inc} or \var{Dec} that doesn't evaluate to an ordinal value.
|
|
|
-\item [Error: Type identifier expected]
|
|
|
- The identifier is not a type, or you forgot to supply a type identifier.
|
|
|
-\item [Error: Variable identifier expected]
|
|
|
- This happens when you pass a constant to a \var{Inc} var or \var{Dec}
|
|
|
- procedure. You can only pass variables as arguments to these functions.
|
|
|
-\item [Error: pointer type expected]
|
|
|
+\item [Error: pointer type expected, but got "arg1"]
|
|
|
The variable or expression isn't of the type \var{pointer}. This
|
|
|
happens when you pass a variable that isn't a pointer to \var{New}
|
|
|
or \var{Dispose}.
|
|
|
-\item [Error: class type expected]
|
|
|
+\item [Error: class type expected, but got "arg1"]
|
|
|
The variable of expression isn't of the type \var{class}. This happens
|
|
|
typically when
|
|
|
\begin{enumerate}
|
|
@@ -787,6 +877,10 @@
|
|
|
You are trying to \var{read} or \var{write} a variable from or to a
|
|
|
file of type text, which doesn't support that. Only integer types,
|
|
|
booleans, reals, pchars and strings can be read from/written to a text file.
|
|
|
+\item [Error: Can't use readln or writeln on typed file]
|
|
|
+ \var{readln} and \var{writeln} are only allowed for text files.
|
|
|
+\item [Error: Can't use read or write on untyped file.]
|
|
|
+ \var{read} and \var{write} are only allowed for text or typed files.
|
|
|
\item [Error: Type conflict between set elements]
|
|
|
There is at least one set element which is of the wrong type, i.e. not of
|
|
|
the set type.
|
|
@@ -798,7 +892,7 @@
|
|
|
to type cast the argument to \var{word/integer}
|
|
|
\item [Error: Integer or real expression expected]
|
|
|
The first argument to \var{str} must a real or integer type.
|
|
|
-\item [Error: Wrong type in array constructor]
|
|
|
+\item [Error: Wrong type arg1 in array constructor]
|
|
|
You are trying to use a type in an array constructor which is not
|
|
|
allowed.
|
|
|
\item [Error: Incompatible type for arg no. arg1: Got arg2, expected arg3]
|
|
@@ -812,6 +906,23 @@
|
|
|
\item [Error: Can't get the address of constants]
|
|
|
It's not possible to get the address of a constant, because they
|
|
|
aren't stored in memory, you can try making it a typed constant.
|
|
|
+\item [Error: Argument can't be assigned to]
|
|
|
+ Only expressions which can be on the left side of an
|
|
|
+ assignment can be passed as call by reference argument
|
|
|
+ Remark: Properties can be only
|
|
|
+ used on the left side of an assignment, but they can't be used as arguments
|
|
|
+\item [Error: Can't assign local procedure/function to procedure variable]
|
|
|
+ It's not allowed to assign a local procedure/function to a
|
|
|
+ procedure variable, because the calling of local procedure/function is
|
|
|
+ different. You can only assign local procedure/function to a void pointer.
|
|
|
+\item [Error: Can't assign values to an address]
|
|
|
+ It's not allowed to assign a value to an address of a variable,constant,
|
|
|
+ procedure or function. You can try compiling with -So if the identifier
|
|
|
+ is a procedure variable.
|
|
|
+\item [Error: Can't assign values to const variable]
|
|
|
+ It's not allowed to assign a value to a variable which is declared
|
|
|
+ as a const. This is normally a parameter declared as const, to allow
|
|
|
+ changing make the parameter value or var.
|
|
|
\end{description}
|
|
|
\section{Symbol handling}
|
|
|
This section lists all the messages that concern the handling of symbols.
|
|
@@ -849,7 +960,7 @@
|
|
|
\item [Error: Type identifier not defined]
|
|
|
The type identifier has not been defined yet.
|
|
|
\item [Error: Forward type not resolved arg1]
|
|
|
- The compiler encountered an unknown type.
|
|
|
+ A symbol was forward defined, but no declaration was encountered.
|
|
|
\item [Error: Only static variables can be used in static methods or outside methods]
|
|
|
A static method of an object can only access static variables.
|
|
|
\item [Error: Invalid call to tvarsym.mangledname()]
|
|
@@ -863,7 +974,11 @@
|
|
|
method that wasn't overridden.
|
|
|
\item [Warning: Label not defined arg1]
|
|
|
A label was declared, but not defined.
|
|
|
+\item [Error: Label used but not defined arg1]
|
|
|
+ A label was declared and used, but not defined.
|
|
|
\item [Error: Illegal label declaration]
|
|
|
+ This error should never happen; it occurs if a label is defined outside a
|
|
|
+ procedure or function.
|
|
|
\item [Error: GOTO and LABEL are not supported (use switch -Sg)]
|
|
|
You must compile a program which has \var{label}s and \var{goto} statements
|
|
|
with the \var{-Sg} switch. By default, \var{label} and \var{goto} aren't
|
|
@@ -878,12 +993,25 @@
|
|
|
The declaration of a set contains an invalid type definition.
|
|
|
\item [Error: Forward class definition not resolved arg1]
|
|
|
You declared a class, but you didn't implement it.
|
|
|
-\item [Hint: Parameter not used arg1]
|
|
|
+\item [Hint: Unit arg1 not used in arg2]
|
|
|
+ The unit referenced in the \var{uses} clause is not used.
|
|
|
+\item [Hint: Parameter arg1 not used]
|
|
|
This is a warning. The identifier was declared (locally or globally) but
|
|
|
wasn't used (locally or globally).
|
|
|
-\item [Note: Local variable not used arg1]
|
|
|
+\item [Note: Local variable arg1 not used]
|
|
|
You have declared, but not used a variable in a procedure or function
|
|
|
implementation.
|
|
|
+\item [Hint: Value parameter arg1 is assigned but never used]
|
|
|
+ This is a warning. The identifier was declared (locally or globally)
|
|
|
+ set but not used (locally or globally).
|
|
|
+\item [Note: Local variable arg1 is assigned but never used]
|
|
|
+ The variable in a procedure or function
|
|
|
+ implementation is declared, set but never used.
|
|
|
+\item [Hint: Local arg1 arg2 is not used]
|
|
|
+ A local symbol is never used.
|
|
|
+\item [Note: Private field arg1.arg2 is never used]
|
|
|
+\item [Note: Private field arg1.arg2 is assigned but never used]
|
|
|
+\item [Note: Private method arg1.arg2 never used]
|
|
|
\item [Error: Set type expected]
|
|
|
The variable or expression isn't of type \var{set}. This happens in an
|
|
|
\var{in} statement.
|
|
@@ -891,6 +1019,9 @@
|
|
|
You can get this warning if the compiler thinks that a function return
|
|
|
value is not set. This will not be displayed for assembler procedures,
|
|
|
or procedures that contain assembler blocks.
|
|
|
+\item [Warning: Type arg1 is not aligned correctly in current record for C]
|
|
|
+ Arrays with sizes not multiples of 4 will be wrongly aligned
|
|
|
+ for C structures.
|
|
|
\item [Error: Unknown record field identifier arg1]
|
|
|
The field doesn't exist in the record definition.
|
|
|
\item [Warning: Local variable arg1 does not seem to be initialized]
|
|
@@ -907,6 +1038,8 @@
|
|
|
You get this when you use the \var{-vb} switch. In case an overloaded
|
|
|
procedure is not found, then all candidate overloaded procedures are
|
|
|
listed, with their parameter lists.
|
|
|
+\item [Error: Data segment too large (max. 2GB)]
|
|
|
+ You get this when you declare an array whose size exceeds the 2GB limit.
|
|
|
\end{description}
|
|
|
\section{Code generator messages}
|
|
|
This section lists all messages that can be displayed if the code
|
|
@@ -1001,7 +1134,7 @@
|
|
|
please contact the developers and try to provide an exact description of
|
|
|
the circumstances in which the error occurs.
|
|
|
\item [Fatal: Extended cg68k not supported]
|
|
|
- The var{extended} type is not supported on the m68k platform.
|
|
|
+ The \var{extended} type is not supported on the m68k platform.
|
|
|
\item [Fatal: 32-bit unsigned not supported in MC68000 mode]
|
|
|
The cardinal is not supported on the m68k platform.
|
|
|
\item [Fatal: Internal Error in secondinline()]
|
|
@@ -1018,12 +1151,16 @@
|
|
|
\item [Stack frame is omitted]
|
|
|
Some procedure/functions do not need a complete stack-frame, so it is omitted.
|
|
|
This message will be displayed when the {-vd} switch is used.
|
|
|
+\item [Warning: Range check for 64 bit integers is not supported on this target]
|
|
|
+ 64 bit range check is not yet implemented for 32 bit processors.
|
|
|
\item [Error: Object or class methods can't be inline.]
|
|
|
You cannot have inlined object methods.
|
|
|
\item [Error: Procvar calls can't be inline.]
|
|
|
A procedure with a procedural variable call cannot be inlined.
|
|
|
\item [Error: No code for inline procedure stored]
|
|
|
The compiler couldn't store code for the inline procedure.
|
|
|
+\item [Error: Direct call of interrupt procedure arg1 is not possible]
|
|
|
+ You can not call an interrupt procedure directly from FPC code
|
|
|
\item [Error: Element zero of an ansi/wide- or longstring can't be accessed, use (set)length instead]
|
|
|
You should use \var{setlength} to set the length of an ansi/wide/longstring
|
|
|
and \var{length} to get the length of such kinf of string
|
|
@@ -1037,7 +1174,76 @@
|
|
|
\item [Error: Cannot call message handler method directly]
|
|
|
A message method handler method can't be called directly if it contains an
|
|
|
explicit self argument
|
|
|
+\item [Error: Jump in or outside of an exception block]
|
|
|
+ It isn't allowed to jump in or outside of an exception block like \var{try..finally..end;}:
|
|
|
+ \begin{verbatim}
|
|
|
+ label 1;
|
|
|
+
|
|
|
+ ...
|
|
|
+
|
|
|
+ try
|
|
|
+ if not(final) then
|
|
|
+ goto 1; // this line will cause an error
|
|
|
+ finally
|
|
|
+ ...
|
|
|
+ end;
|
|
|
+ 1:
|
|
|
+ ...
|
|
|
+ \end{verbatim}
|
|
|
\end{description}
|
|
|
+\item [Error: Control flow statements aren't allowed in a finally block]
|
|
|
+ It isn't allowed to use the control flow statements \var{break},
|
|
|
+ \var{continue} and \var{exit}
|
|
|
+ inside a finally statement. The following example shows the problem:
|
|
|
+ \begin{verbatim}
|
|
|
+ ...
|
|
|
+ try
|
|
|
+ p;
|
|
|
+ finally
|
|
|
+ ...
|
|
|
+ exit; // This exit ISN'T allowed
|
|
|
+ end;
|
|
|
+ ...
|
|
|
+
|
|
|
+ \end{verbatim}
|
|
|
+ If the procedure \var{p} raises an exception the finally block is
|
|
|
+ executed. If the execution reaches the exit, it's unclear what to do:
|
|
|
+ exiting the procedure or searching for another exception handler
|
|
|
+
|
|
|
+ \section{Errors of assembling/linking stage}
|
|
|
+ This section lists errors that occur when the compiler is processing the
|
|
|
+ command line or handling the configuration files.
|
|
|
+ \begin{description}
|
|
|
+\item [Warning: Source operating system redefined]
|
|
|
+\item [Info: Assembling (pipe) arg1]
|
|
|
+\item [Error: Can't create assember file: arg1]
|
|
|
+ The mentioned file can't be create. Check if you've
|
|
|
+ permission to create this file
|
|
|
+\item [Error: Can't create object file: arg1]
|
|
|
+ The mentioned file can't be create. Check if you've
|
|
|
+ permission to create this file
|
|
|
+\item [Error: Can't create archive file: arg1]
|
|
|
+ The mentioned file can't be create. Check if you've
|
|
|
+ permission to create this file
|
|
|
+\item [Warning: Assembler arg1 not found, switching to external assembling]
|
|
|
+\item [Using assembler: arg1]
|
|
|
+\item [Warning: Error while assembling exitcode arg1]
|
|
|
+\item [Warning: Can't call the assembler, error arg1 switching to external assembling]
|
|
|
+\item [Info: Assembling arg1]
|
|
|
+\item [Info: Assembling smartlink arg1]
|
|
|
+\item [Warning: Object arg1 not found, Linking may fail !]
|
|
|
+\item [Warning: Library arg1 not found, Linking may fail !]
|
|
|
+\item [Warning: Error while linking]
|
|
|
+\item [Warning: Can't call the linker, switching to external linking]
|
|
|
+\item [Info: Linking arg1]
|
|
|
+\item [Warning: Util arg1 not found, switching to external linking]
|
|
|
+\item [Using util arg1]
|
|
|
+\item [Error: Creation of Executables not supported]
|
|
|
+\item [Error: Creation of Dynamic/Shared Libraries not supported]
|
|
|
+\item [Info: Closing script arg1]
|
|
|
+\item [Warning: resource compiler not found, switching to external mode]
|
|
|
+\item [Info: Compiling resource arg1]
|
|
|
+\end{description}
|
|
|
\section{Unit loading messages.}
|
|
|
This section lists all messages that can occur when the compiler is
|
|
|
loading a unit from disk into memory. Many of these mesages are
|
|
@@ -1056,9 +1262,9 @@
|
|
|
\item [PPU Crc: arg1]
|
|
|
When you use the \var{-vu} flag, the unit CRC check is shown.
|
|
|
\item [PPU Time: arg1]
|
|
|
- When you use the \var{-vu} flag, the unit time is shown.
|
|
|
+ When you use the \var{-vu} flag, the time the unit was compiled is shown.
|
|
|
\item [PPU File too short]
|
|
|
- When you use the \var{-vu} flag, the unit time is shown.
|
|
|
+ The ppufile is too short, not all declarations are present.
|
|
|
\item [PPU Invalid Header (no PPU at the begin)]
|
|
|
A unit file contains as the first three bytes the ascii codes of \var{PPU}
|
|
|
\item [PPU Invalid Version arg1]
|
|
@@ -1076,12 +1282,12 @@
|
|
|
When you specify the \var{-vu} switch, the compiler will tell you where it
|
|
|
writes the unit file.
|
|
|
\item [Fatal: Can't Write PPU-File]
|
|
|
- An err
|
|
|
-\item [Fatal: reading PPU-File]
|
|
|
- Unexpected end of file
|
|
|
-\item [Fatal: unexpected end of PPU-File]
|
|
|
+ An error occurred when writing the unit file.
|
|
|
+\item [Fatal: Error reading PPU-File]
|
|
|
This means that the unit file was corrupted, and contains invalid
|
|
|
information. Recompilation will be necessary.
|
|
|
+\item [Fatal: unexpected end of PPU-File]
|
|
|
+ Unexpected end of file.
|
|
|
\item [Fatal: Invalid PPU-File entry: arg1]
|
|
|
The unit the compiler is trying to read is corrupted, or generated with a
|
|
|
newer version of the compiler.
|
|
@@ -1100,6 +1306,13 @@
|
|
|
\item [Fatal: Can't compile unit arg1, no sources available]
|
|
|
A unit was found that needs to be recompiled, but no sources are
|
|
|
available.
|
|
|
+\item [Fatal: Can't find unit arg1]
|
|
|
+ You tried to use a unit of which the PPU file isn't found by the
|
|
|
+ compiler. Check your config files for the unit pathes
|
|
|
+\item [Warning: Unit arg1 was not found but arg2 exists]
|
|
|
+\item [Fatal: Unit arg1 searched but arg2 found]
|
|
|
+ Dos truncation of 8 letters for unit PPU files
|
|
|
+ may lead to problems when unit name is longer than 8 letters.
|
|
|
\item [Warning: Compiling the system unit requires the -Us switch]
|
|
|
When recompiling the system unit (it needs special treatment), the
|
|
|
\var{-Us} must be specified.
|
|
@@ -1120,7 +1333,7 @@
|
|
|
When you use the \var{-vu} flag, the compiler warns if the shared library
|
|
|
of the unit are older than the unit file itself.
|
|
|
\item [Recompiling unit, obj and asm are older than ppufile]
|
|
|
- When you use the \var{-vu} flag, the compiler warns if the assembler of
|
|
|
+ When you use the \var{-vu} flag, the compiler warns if the assembler or
|
|
|
object file of the unit are older than the unit file itself.
|
|
|
\item [Recompiling unit, obj is older than asm]
|
|
|
When you use the \var{-vu} flag, the compiler warns if the assembler
|
|
@@ -1154,6 +1367,8 @@
|
|
|
you cannot nest response files with the \var{@file} command-line option.
|
|
|
\item [Fatal: No source file name in command line]
|
|
|
The compiler expects a source file name on the command line.
|
|
|
+\item [Note: No option inside arg1 config file]
|
|
|
+ The compiler didn't find any option in that config file.
|
|
|
\item [Error: Illegal parameter: arg1]
|
|
|
You specified an unknown option.
|
|
|
\item [Hint: -? writes help pages]
|
|
@@ -1199,4 +1414,9 @@
|
|
|
\item [Note: Switching assembler to default source writing assembler]
|
|
|
this notifies you that the assembler has been changed because you used the
|
|
|
-a switch which can't be used with a binary assembler writer.
|
|
|
+\item [Warning: Assembler output selected "arg1" is not compatible with "arg2"]
|
|
|
+\item [Warning: "arg1" assembler use forced]
|
|
|
+ The assembler output selected can not generate
|
|
|
+ object files with the correct format. Therefore, the
|
|
|
+ default assembler for this target is used instead.
|
|
|
\end{description}
|