Control Flow¶ Expressions Expressions: Definition Relations and simple expressions Numeric expressions Other expressions Parenthesized expression Conditional Expressions Quantified Expressions Declare Expressions Restrictions in the declarative part Reduction Expressions Value sequences Custom reducers Other accumulator types Statements Simple and Compound Statements Labels Labels and goto statements Use-case: Continue Labels and compound statements Exit loop statement If, case and loop statements Case statements and expressions Block Statements Extended return statement Other usages of extended return statements Subprograms Parameter Modes and Associations Formal Parameter Modes By-copy and by-reference Bounded errors Aliased parameters Parameter Associations Operators User-defined operators Expression functions Overloading Operator Overloading Operator Overriding Nonreturning procedures Inline subprograms Null Procedures Null procedures and overriding Exceptions Classification of Errors Compilation errors Runtime errors Bounded errors Erroneous execution Asserts Assertion policies Checks and exceptions Access Check Discriminant Check Division Check Index Check Length Check Overflow Check Range Check Tag Check Accessibility Check Allocation Check Elaboration Check Program_Error_Check Storage Check Tasking_Check Ada.Exceptions package Retrieving exception information Collecting exceptions Debugging exceptions in the GNAT toolchain Exception renaming Out and Uninitialized Suppressing checks pragma Suppress pragma Unsuppress