Browse Source

* updated

peter 25 years ago
parent
commit
8ae0004dff
1 changed files with 259 additions and 39 deletions
  1. 259 39
      docs/messages.tex

+ 259 - 39
docs/messages.tex

@@ -44,6 +44,12 @@
  \item If the previous two don't work, recompile the compiler with a bigger
  \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})
  heap (you can use the \var{-Ch} option for this, \seeo{Ch})
  \end{itemize}
  \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}
  \end{description}
  \section{Scanner messages.}
  \section{Scanner messages.}
  This section lists the messages that the scanner emits. The scanner takes
  This section lists the messages that the scanner emits. The scanner takes
@@ -63,7 +69,7 @@
 \item [Fatal: String exceeds line]
 \item [Fatal: String exceeds line]
  You forgot probably to include the closing ' in a string, so it occupies
  You forgot probably to include the closing ' in a string, so it occupies
  multiple lines.
  multiple lines.
-\item [Fatal: illegal character]
+\item [Fatal: illegal character arg1 (arg2)]
  An illegal character was encountered in the input file.
  An illegal character was encountered in the input file.
 \item [Fatal: Syntax error, arg1 expected but arg2 found]
 \item [Fatal: Syntax error, arg1 expected but arg2 found]
  This indicates that the compiler expected a different token than
  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
  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
  it finds nested comments. Nested comments are not allowed in Turbo Pascal
  and can be a possible source of errors.
  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
  The \var{FAR} directive is a 16-bit construction which is recorgnised
  but ignored by the compiler, since it produces 32 bit code.
  but ignored by the compiler, since it produces 32 bit code.
 \item [Note: Stack check is global under Linux]
 \item [Note: Stack check is global under Linux]
@@ -101,13 +107,13 @@
  statement.
  statement.
 \item [Error: Too many argENDIFs or argELSEs]
 \item [Error: Too many argENDIFs or argELSEs]
  Your \var{\{\$IFDEF ..\}} and {\{\$ENDIF\}} statements aren't balanced.
  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
  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]
 \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
  You are specifying the \var{\{\$PACKENUM n\}} with an illegal value for
  \var{n}. Only 1,2 or 4 are valid in this case.
  \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.
  Your conditional compilation statements are unbalanced.
 \item [Error: Syntax error while parsing a conditional compiling expression]
 \item [Error: Syntax error while parsing a conditional compiling expression]
  There is an error in the expression following the \var{\{\$if ..\}} compiler
  There is an error in the expression following the \var{\{\$if ..\}} compiler
@@ -187,6 +193,15 @@
  with the directive \var{\{\$APPTYPE\}}
  with the directive \var{\{\$APPTYPE\}}
 \item [Warning: APPTYPE isn't support by the target OS]
 \item [Warning: APPTYPE isn't support by the target OS]
  The \var{\{\$APPTYPE\}} directive is supported by win32 applications only.
  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]
 \item [Warning: Unsupported assembler style specified arg1]
  When you specify an assembler mode with the \var{\{\$ASMMODE xxx\}}
  When you specify an assembler mode with the \var{\{\$ASMMODE xxx\}}
  the compiler didn't recognize the mode you specified.
  the compiler didn't recognize the mode you specified.
@@ -197,9 +212,17 @@
 \item [Error: Wrong switch toggle, use ON/OFF or +/-]
 \item [Error: Wrong switch toggle, use ON/OFF or +/-]
  You need to use ON or OFF or a + or - to toggle the switch
  You need to use ON or OFF or a + or - to toggle the switch
 \item [Error: Resource files are not supported for this target]
 \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}
  \end{description}
  \section{Parser messages}
  \section{Parser messages}
  This section lists all parser messages. The parser takes care of the
  This section lists all parser messages. The parser takes care of the
@@ -215,9 +238,17 @@
 \item [Warning: Procedure type NEAR ignored]
 \item [Warning: Procedure type NEAR ignored]
  This is a warning. \var{NEAR} is a construct for 8 or 16 bit programs. Since
  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.
  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.
  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]
 \item [Error: No DLL File specified]
  No longer in use.
  No longer in use.
 \item [Error: Duplicate exported function name arg1]
 \item [Error: Duplicate exported function name arg1]
@@ -226,6 +257,10 @@
  Exported function names inside a specific DLL must all be different
  Exported function names inside a specific DLL must all be different
 \item [Error: Invalid index for exported function]
 \item [Error: Invalid index for exported function]
  DLL function index must be in the range \var{1..\$FFFF}
  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]
 \item [Error: Constructor name must be INIT]
  You are declaring a constructor with a name which isn't \var{init}, and the
  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}).
  \var{-Ss} switch is in effect. See the \var{-Ss} switch (\seeo{Ss}).
@@ -280,7 +315,7 @@
  declaration.
  declaration.
 \item [Error: function header doesn't match the forward declaration arg1]
 \item [Error: function header doesn't match the forward declaration arg1]
  You declared a function with same parameters but
  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]
 \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
  You declared the function in the \var{interface} part, or with the
  \var{forward} directive, but define it with a different parameter list.
  \var{forward} directive, but define it with a different parameter list.
@@ -433,7 +468,7 @@
 \item [Error: methods can't be EXPORTed]
 \item [Error: methods can't be EXPORTed]
  You cannot declare a procedure that is a method for an object as
  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.
  \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
  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
  the function call must be of exactly the same type. There is no automatic
  type conversion.
  type conversion.
@@ -480,6 +515,12 @@
 \item [Error: Operator is not overloaded]
 \item [Error: Operator is not overloaded]
  You're trying to use an overloaded operator when it isn't overloaded for
  You're trying to use an overloaded operator when it isn't overloaded for
  this type.
  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]
 \item [Error: Re-raise isn't possible there]
  You are trying to raise an exception where it isn't allowed. You can only
  You are trying to raise an exception where it isn't allowed. You can only
  raise exceptions in an \var{except} block.
  raise exceptions in an \var{except} block.
@@ -563,11 +604,17 @@
 \item [Info: Compiling arg1]
 \item [Info: Compiling arg1]
  When you turn on information messages (\var{-vi}), the compiler tells you
  When you turn on information messages (\var{-vi}), the compiler tells you
  what units it is recompiling.
  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]
 \item [Compiling arg1 for the second time]
  When you request debug messages (\var{-vd}) the compiler tells you what
  When you request debug messages (\var{-vd}) the compiler tells you what
  units it recompiles for the second time.
  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]
 \item [Error: No property found to override]
  You want to overrride a property of a parent class, when there is, in fact,
  You want to overrride a property of a parent class, when there is, in fact,
  no such property in the parent class.
  no such property in the parent class.
@@ -606,7 +653,7 @@
  This procedure directive is not defined in the \var{implementation} section of
  This procedure directive is not defined in the \var{implementation} section of
  a unit. You can only use it in the \var{interface} section.
  a unit. You can only use it in the \var{interface} section.
 \item [Error: Procedure directive arg1 not allowed in procvar declaration]
 \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.
  type declaration.
 \item [Error: Function is already declared Public/Forward arg1]
 \item [Error: Function is already declared Public/Forward arg1]
  You will get this error if a function is defined as \var{forward} twice.
  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]
 \item [Error: Property can't have a default value]
  Set properties or indexed properties cannot 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]
 \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
  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.
  .e.g. if you specify a variable name as a default value.
 \item [Error: Symbol can't be published, can be only a class]
 \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.
  section must be an ordinal type, a real type, strings or sets.
 \item [Warning: Empty import name specified]
 \item [Warning: Empty import name specified]
  Both index and name for the import are 0 or empty
  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
  Some targets need a name for the imported procedure or a cdecl specifier
 \item [Error: Function internal name changed after use of function]
 \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]
 \item [Error: Division by zero]
  There is a divsion by zero encounted
  There is a divsion by zero encounted
 \item [Error: Invalid floating point operation]
 \item [Error: Invalid floating point operation]
@@ -667,6 +716,9 @@
 \item [Error: Upper bound of range is less than lower bound]
 \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
  The upper bound of a \var{case} label is less than the lower bound and this
  is not possible
  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]
 \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 size of the constant string is larger than the size you specified in
  the array[x..y] of char definition
  the array[x..y] of char definition
@@ -679,8 +731,8 @@
 \item [Error: Duplicate message label: arg1]
 \item [Error: Duplicate message label: arg1]
  A label for a message is used twice in one object/class
  A label for a message is used twice in one object/class
 \item [Error: Self can be only an explicit parameter in message handlers]
 \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]
 \item [Error: Threadvars can be only static or global]
  Threadvars must be static or global, you can't declare a thread
  Threadvars must be static or global, you can't declare a thread
  local to a procedure. Local variables are always local to 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
  Some data type (e.g. \var{ansistring}) needs initialization/finalization
  code which is implicitly generated by the compiler. Such data types
  code which is implicitly generated by the compiler. Such data types
  can't be used in the variant part of a record.
  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}
  \end{description}
  \section{Type checking errors}
  \section{Type checking errors}
  This section lists all errors that can occur when type checking is
  This section lists all errors that can occur when type checking is
@@ -730,23 +817,26 @@
  \end{verbatim}
  \end{verbatim}
 \item [Error: Type mismatch between arg1 and arg2]
 \item [Error: Type mismatch between arg1 and arg2]
  The types are not equal
  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
  The compiler expects an expression of type integer, but gets a different
  type.
  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]
 \item [Error: Ordinal expression expected]
  The expression must be of ordinal type, i.e., maximum a \var{Longint}.
  The expression must be of ordinal type, i.e., maximum a \var{Longint}.
  This happens, for instance, when you specify a second argument
  This happens, for instance, when you specify a second argument
  to \var{Inc} or \var{Dec} that doesn't evaluate to an ordinal value.
  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
  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}
  happens when you pass a variable that isn't a pointer to \var{New}
  or \var{Dispose}.
  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
  The variable of expression isn't of the type \var{class}. This happens
  typically when
  typically when
  \begin{enumerate}
  \begin{enumerate}
@@ -787,6 +877,10 @@
  You are trying to \var{read} or \var{write} a variable from or to a
  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,
  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.
  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]
 \item [Error: Type conflict between set elements]
  There is at least one set element which is of the wrong type, i.e. not of
  There is at least one set element which is of the wrong type, i.e. not of
  the set type.
  the set type.
@@ -798,7 +892,7 @@
  to type cast the argument to \var{word/integer}
  to type cast the argument to \var{word/integer}
 \item [Error: Integer or real expression expected]
 \item [Error: Integer or real expression expected]
  The first argument to \var{str} must a real or integer type.
  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
  You are trying to use a type in an array constructor which is not
  allowed.
  allowed.
 \item [Error: Incompatible type for arg no. arg1: Got arg2, expected arg3]
 \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]
 \item [Error: Can't get the address of constants]
  It's not possible to get the address of a constant, because they
  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.
  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}
  \end{description}
  \section{Symbol handling}
  \section{Symbol handling}
  This section lists all the messages that concern the handling of symbols.
  This section lists all the messages that concern the handling of symbols.
@@ -849,7 +960,7 @@
 \item [Error: Type identifier not defined]
 \item [Error: Type identifier not defined]
  The type identifier has not been defined yet.
  The type identifier has not been defined yet.
 \item [Error: Forward type not resolved arg1]
 \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]
 \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.
  A static method of an object can only access static variables.
 \item [Error: Invalid call to tvarsym.mangledname()]
 \item [Error: Invalid call to tvarsym.mangledname()]
@@ -863,7 +974,11 @@
  method that wasn't overridden.
  method that wasn't overridden.
 \item [Warning: Label not defined arg1]
 \item [Warning: Label not defined arg1]
  A label was declared, but not defined.
  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]
 \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)]
 \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
  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
  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.
  The declaration of a set contains an invalid type definition.
 \item [Error: Forward class definition not resolved arg1]
 \item [Error: Forward class definition not resolved arg1]
  You declared a class, but you didn't implement it.
  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
  This is a warning. The identifier was declared (locally or globally) but
  wasn't used (locally or globally).
  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
  You have declared, but not used a variable in a procedure or function
  implementation.
  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]
 \item [Error: Set type expected]
  The variable or expression isn't of type \var{set}. This happens in an
  The variable or expression isn't of type \var{set}. This happens in an
  \var{in} statement.
  \var{in} statement.
@@ -891,6 +1019,9 @@
  You can get this warning if the compiler thinks that a function return
  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,
  value is not set. This will not be displayed for assembler procedures,
  or procedures that contain assembler blocks.
  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]
 \item [Error: Unknown record field identifier arg1]
  The field doesn't exist in the record definition.
  The field doesn't exist in the record definition.
 \item [Warning: Local variable arg1 does not seem to be initialized]
 \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
  You get this when you use the \var{-vb} switch. In case an overloaded
  procedure is not found, then all candidate overloaded procedures are
  procedure is not found, then all candidate overloaded procedures are
  listed, with their parameter lists.
  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}
  \end{description}
  \section{Code generator messages}
  \section{Code generator messages}
  This section lists all messages that can be displayed if the code
  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
  please contact the developers and try to provide  an exact description of
  the circumstances in which the error occurs.
  the circumstances in which the error occurs.
 \item [Fatal: Extended cg68k not supported]
 \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]
 \item [Fatal: 32-bit unsigned not supported in MC68000 mode]
  The cardinal is not supported on the m68k platform.
  The cardinal is not supported on the m68k platform.
 \item [Fatal: Internal Error in secondinline()]
 \item [Fatal: Internal Error in secondinline()]
@@ -1018,12 +1151,16 @@
 \item [Stack frame is omitted]
 \item [Stack frame is omitted]
  Some procedure/functions do not need a complete stack-frame, so it 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.
  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.]
 \item [Error: Object or class methods can't be inline.]
  You cannot have inlined object methods.
  You cannot have inlined object methods.
 \item [Error: Procvar calls can't be inline.]
 \item [Error: Procvar calls can't be inline.]
  A procedure with a procedural variable call cannot be inlined.
  A procedure with a procedural variable call cannot be inlined.
 \item [Error: No code for inline procedure stored]
 \item [Error: No code for inline procedure stored]
  The compiler couldn't store code for the inline procedure.
  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]
 \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
  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
  and \var{length} to get the length of such kinf of string
@@ -1037,7 +1174,76 @@
 \item [Error: Cannot call message handler method directly]
 \item [Error: Cannot call message handler method directly]
  A message method handler method can't be called directly if it contains an
  A message method handler method can't be called directly if it contains an
  explicit self argument
  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}
  \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.}
  \section{Unit loading messages.}
  This section lists all messages that can occur when the compiler is
  This section lists all messages that can occur when the compiler is
  loading a unit from disk into memory. Many of these mesages are
  loading a unit from disk into memory. Many of these mesages are
@@ -1056,9 +1262,9 @@
 \item [PPU Crc: arg1]
 \item [PPU Crc: arg1]
  When you use the \var{-vu} flag, the unit CRC check is shown.
  When you use the \var{-vu} flag, the unit CRC check is shown.
 \item [PPU Time: arg1]
 \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]
 \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)]
 \item [PPU Invalid Header (no PPU at the begin)]
  A unit file contains as the first three bytes the ascii codes of \var{PPU}
  A unit file contains as the first three bytes the ascii codes of \var{PPU}
 \item [PPU Invalid Version arg1]
 \item [PPU Invalid Version arg1]
@@ -1076,12 +1282,12 @@
  When you specify the \var{-vu} switch, the compiler will tell you where it
  When you specify the \var{-vu} switch, the compiler will tell you where it
  writes the unit file.
  writes the unit file.
 \item [Fatal: Can't Write PPU-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
  This means that the unit file was corrupted, and contains invalid
  information. Recompilation will be necessary.
  information. Recompilation will be necessary.
+\item [Fatal: unexpected end of PPU-File]
+ Unexpected end of file.
 \item [Fatal: Invalid PPU-File entry: arg1]
 \item [Fatal: Invalid PPU-File entry: arg1]
  The unit the compiler is trying to read is corrupted, or generated with a
  The unit the compiler is trying to read is corrupted, or generated with a
  newer version of the compiler.
  newer version of the compiler.
@@ -1100,6 +1306,13 @@
 \item [Fatal: Can't compile unit arg1, no sources available]
 \item [Fatal: Can't compile unit arg1, no sources available]
  A unit was found that needs to be recompiled, but no sources are
  A unit was found that needs to be recompiled, but no sources are
  available.
  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]
 \item [Warning: Compiling the system unit requires the -Us switch]
  When recompiling the system unit (it needs special treatment), the
  When recompiling the system unit (it needs special treatment), the
  \var{-Us} must be specified.
  \var{-Us} must be specified.
@@ -1120,7 +1333,7 @@
  When you use the \var{-vu} flag, the compiler warns if the shared library
  When you use the \var{-vu} flag, the compiler warns if the shared library
  of the unit are older than the unit file itself.
  of the unit are older than the unit file itself.
 \item [Recompiling unit, obj and asm are older than ppufile]
 \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.
  object file of the unit are older than the unit file itself.
 \item [Recompiling unit, obj is older than asm]
 \item [Recompiling unit, obj is older than asm]
  When you use the \var{-vu} flag, the compiler warns if the assembler
  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.
  you cannot nest response files with the \var{@file} command-line option.
 \item [Fatal: No source file name in command line]
 \item [Fatal: No source file name in command line]
  The compiler expects a source file name on the 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]
 \item [Error: Illegal parameter: arg1]
  You specified an unknown option.
  You specified an unknown option.
 \item [Hint: -? writes help pages]
 \item [Hint: -? writes help pages]
@@ -1199,4 +1414,9 @@
 \item [Note: Switching assembler to default source writing assembler]
 \item [Note: Switching assembler to default source writing assembler]
  this notifies you that the assembler has been changed because you used the
  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.
  -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}
 \end{description}