Next: Other Elaboration Order Considerations, Previous: Elaboration for Access-to-Subprogram Values, Up: Elaboration Order Handling in GNAT
First, compile your program with the default options, using none of
the special elaboration control switches. If the binder successfully
binds your program, then you can be confident that, apart from issues
raised by the use of access-to-subprogram types and dynamic dispatching,
the program is free of elaboration errors. If it is important that the
program be portable, then use the
-gnatwl
switch to generate warnings about missing Elaborate
or
Elaborate_All
pragmas, and supply the missing pragmas.
If the program fails to bind using the default static elaboration
handling, then you can fix the program to eliminate the binder
message, or recompile the entire program with the
-gnatE switch to generate dynamic elaboration checks,
and, if you are sure there really are no elaboration problems,
use a global pragma Suppress (Elaboration_Check)
.