Although GNAT is primarily an Ada 95 compiler, it accepts this switch to
specify that an Ada 83 program is to be compiled in Ada 83 mode. If you specify
this switch, GNAT rejects most Ada 95 extensions and applies Ada 83 semantics
where this can be done easily.
It is not possible to guarantee this switch does a perfect
job; for example, some subtle tests, such as are
found in earlier ACVC tests (and that have been removed from the ACATS suite
for Ada 95), might not compile correctly.
Nevertheless, this switch may be useful in some circumstances, for example
where, due to contractual reasons, legacy code needs to be maintained
using only Ada 83 features.
With few exceptions (most notably the need to use <> on
unconstrained generic formal parameters, the use of the new Ada 95
reserved words, and the use of packages
with optional bodies), it is not necessary to use the
-gnat83 switch when compiling Ada 83 programs, because, with rare
exceptions, Ada 95 is upwardly compatible with Ada 83. This
means that a correct Ada 83 program is usually also a correct Ada 95
program.
For further information, please refer to Compatibility and Porting Guide.