This directive allows to selectively turn on or off the emission of warnings. It takes the following
form
                                                                            
                                                                            
{$WARN IDENTIFIER ON}
 
{$WARN IDENTIFIER OFF}
 
{$WARN IDENTIFIER +}
 
{$WARN IDENTIFIER -}
 
{$WARN IDENTIFIER ERROR}
ON or + turns on emission of the warning. The OFF or - values suppress the warning. ERROR
promotes the warning to an error, and the compiler will treat it as such.
The IDENTIFIER is the name of a warning message. The following names are recognized:
     
- 
CONSTRUCTING_ABSTRACT 
 - Constructing  an  instance  of  a  class  with  abstract
     methods.
     
 - 
IMPLICIT_VARIANTS 
 - Implicit use of the variants unit.
     
 - 
NO_RETVAL 
 - Function result is not set.
     
 - 
SYMBOL_DEPRECATED 
 - Deprecated symbol.
     
 - 
SYMBOL_EXPERIMENTAL 
 - Experimental symbol
     
 - 
SYMBOL_LIBRARY 
 - Not used.
     
 - 
SYMBOL_PLATFORM 
 - Platform-dependent symbol.
     
 - 
SYMBOL_UNIMPLEMENTED 
 - Unimplemented symbol.
     
 - 
UNIT_DEPRECATED 
 - Deprecated unit.
     
 - 
UNIT_EXPERIMENTAL 
 - Experimental unit.
     
 - 
UNIT_LIBRARY 
 - 
     
 - 
UNIT_PLATFORM 
 - Platform dependent unit.
     
 - 
UNIT_UNIMPLEMENTED 
 - Unimplemented unit.
     
 - 
ZERO_NIL_COMPAT 
 - Converting 0 to NIL
     
 - 
IMPLICIT_STRING_CAST 
 - Implicit string type conversion
                                                                            
                                                                            
     
 - 
IMPLICIT_STRING_CAST_LOSS 
 - Implicit string typecast with potential data loss
     from ”$1” to ”$2”
     
 - 
EXPLICIT_STRING_CAST 
 - Explicit string type conversion
     
 - 
EXPLICIT_STRING_CAST_LOSS 
 - Explicit string typecast with potential data loss
     from ”$1” to ”$2”
     
 - 
CVT_NARROWING_STRING_LOST 
 - Unicode constant cast with potential data loss
     
 - 
INTF_RAISE_VISIBILITY 
 - Using    an    interface    raises    the    visibility    of    the
     implementation of a method. (this is an error for the JVM bytecode backend)
 
Besides the above text identifiers, the identifier can also be a message number. The numbers of the
messages are displayed when the -vq command-line option is used.