* Updated compiler messages

This commit is contained in:
michael 2001-10-29 22:14:48 +00:00
parent a5b3a4c9f4
commit 7a87365454

View File

@ -237,6 +237,13 @@
A macro declaration has been found, but macro support is currently off,
so the declaration will be ignored. To turn macro support on compile with
-Sm on the commandline or add \var{\{\$MACRO ON\}} in the source
\item [Warning: APPID is only supported for PalmOS]
The \var{\{\$APPID\}} directive is only supported for the PalmOS target.
\item [Warning: APPNAME is only supported for PalmOS]
The \var{\{\$APPNAME\}} directive is only supported for the PalmOS target.
\item [Error: Constant strings can't be longer than 255 chars]
A single string constant can contain at most 255 chars. Try splitting up the
string in multiple smaller parts and concatenate them with a + operator.
\end{description}
\section{Parser messages}
This section lists all parser messages. The parser takes care of the
@ -744,8 +751,8 @@
Parameters are declared as call by reference using the \var{var}-directive
\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 explicitly in a method which
\item [Error: Self can only be an explicit parameter in mehtods that are message handlers]
The self parameter can only be passed explicitly to 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
@ -816,6 +823,24 @@
currently supporting export of variables is Win32.
\item [Error: Type "arg1" can't be used as array index type]
Types like DWord or Int64 aren't allowed as array index type
\item [Warning: Some fields coming before "arg1" weren't initialized]
In Delphi mode, not all fields of a typed constant record have to be
initialized, but the compiler warns you when it detects such situations.
\item [Error: Some fields coming before "arg1" weren't initialized]
In all syntax modes but Delphi mode, you can't leave some fields uninitialized
in the middle of a typed constant record
\item [Hint: Some fields coming after "arg1" weren't initialized]
You can leave some fields at the end of a type constant record uninitialized
(the compiler will initialize them to zero automatically), but then the
compiler gives you a hint when it detects such situations.
\item [Error: Self must be a normal (call-by-value) parameter]
You can't declare self as a const or var parameter, it must always be
a call-by-value parameter
\item [Error: Typed constants of the type "procedure of object" can only be initialized with NIL]
You can't assign the address of a method to a typed constant which has a
'procedure of object' type, because such a constant requires two addresses:
that of the method (which is known at compile time) and that of the object or
class instance it operates on (which can not be known at compile time).
\end{description}
\section{Type checking errors}
This section lists all errors that can occur when type checking is
@ -954,11 +979,23 @@
\item [Error: Array type required]
If you are accessing a variable using an index '[<x>]' then
the type must be an array. In FPC mode also a pointer is allowed.
\item [Hint: Mixing signed expressions and cardinals results in a (slower) 64bit evaluation]
If you divide/multiply a signed number by a cardinal (or vice versa),
\item [Warning: Mixing signed expressions and cardinals gives a 64bit result]
If you divide (or calculate the modulus of) a signed expression by a cardinal (or vice versa),
or if you have overflow and/or range checking turned on and use an arithmetical
expression in which both signed numbers and cardinals appear, then everything has
to be evaluated in 64bit which is slower than normal 32bit arithmetics.
expression (+, -, *, div, mod) in which both signed numbers and cardinals appear,
then everything has to be evaluated in 64bit which is slower than normal
32bit arithmetics. You can avoid this by typecasting one operand so it
matches the resulttype of the other one.
\item [Warning: Mixing signed expressions and cardinals here may cause a range check error]
If you use a binary operator (and, or, xor) and one of
the operands is a cardinal while the other one is a signed expression, then,
if range checking is turned on, you may get a range check error because in
such a case both operands are converted to cardinal before the operation is
carried out. You can avoid this by typecasting one operand so it
matches the resulttype of the other one.
\item [Error: Typecast has different size (arg1 -> arg2) in assignment]
Type casting to a type with a different size is not allowed when the variable is
used for assigning.
\end{description}
\section{Symbol handling}
This section lists all the messages that concern the handling of symbols.
@ -1259,23 +1296,23 @@
\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 [Error: 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 [Error: Error while assembling exitcode arg1]
\item [Error: 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 [Error: Error while linking]
\item [Error: Can't call the linker, switching to external linking]
\item [Info: Linking arg1]
\item [Warning: Util arg1 not found, switching to external linking]
\item [Error: 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 [Error: resource compiler not found, switching to external mode]
\item [Info: Compiling resource arg1]
\item [unit arg1 can't be static linked, switching to smart linking]
\item [unit arg1 can't be smart linked, switching to static linking]
@ -1313,7 +1350,7 @@
This unit file was compiled for a different processor type, and
cannot be read
\item [PPU is compiled for an other target]
This unit file was compiled for a different processor type, and
This unit file was compiled for a different target, and
cannot be read
\item [PPU Source: arg1]
When you use the \var{-vu} flag, the unit CRC check is shown.
@ -1345,6 +1382,9 @@
\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 [Warning: Can't recompile unit arg1, but found modifed include files]
A unit was found to have modified include files, but
some source files were not found, so recompilation is impossible.
\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
@ -1400,6 +1440,7 @@
the same conditionals are set for the recompiliation. The compiler has
found a conditional that was used the last time the unit was compiled, but
the conditional is currently not defined.
\item [Hint: File arg1 is newer than Release PPU file arg2]
\end{description}
\section{Command-line handling errors}
@ -1426,7 +1467,7 @@
You can only nest up to 16 config files.
\item [Fatal: Unable to open file arg1]
The option file cannot be found.
\item [Note: Reading further options from arg1]
\item [Reading further options from arg1]
Displayed when you have notes turned on, and the compiler switches
to another options file.
\item [Warning: Target is already set to: arg1]
@ -1468,4 +1509,5 @@
The assembler output selected can not generate
object files with the correct format. Therefore, the
default assembler for this target is used instead.
\item [*** press enter ***]
\end{description}