Next: , Previous: Elaboration for Access-to-Subprogram Values, Up: Elaboration Order Handling in GNAT

C.12 Summary of Procedures for Elaboration Control

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).