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.