7.1.3 Preelaboration and Categorization ¶
- Categorization errors (pure/preelaborated unit violations) are downgraded
to ‘warnings’.
- Statements in preelaborated units emit a ‘warning’ rather than an error.
- Private objects and non-static constants/calls in preelaborated units emit
‘warnings’ rather than errors.
- Calls to non-preelaborable subprograms in preelaborated packages are
demoted to ‘suppressible warnings’ (RM 10.2.1), allowing the runtime to
include elaboration code that would otherwise be forbidden.
- Assignment statements to library-level variables are ‘excluded’ from
access-before-elaboration (ABE) analysis, on the assumption that the
predefined runtime manages its own elaboration order correctly.