.. _List_of_Rules:

*************
List of Rules
*************

This section contains an alphabetized list of all the predefined
GNATcheck rules.

*
  :ref:`Abstract_Type_Declarations`

*
  :ref:`Anonymous_Arrays`

*
  :ref:`Anonymous_Subtypes`

*
  :ref:`Binary_Case_Statements`

*
  :ref:`Blocks`

*
  :ref:`Boolean_Relational_Operators`

*
  :ref:`Complex_Inlined_Subprograms`

*
  :ref:`Conditional_Expressions`

*
  :ref:`Constructors`

*
  :ref:`Controlled_Type_Declarations`

*
  :ref:`Declarations_In_Blocks`

*
  :ref:`Deep_Inheritance_Hierarchies`

*
  :ref:`Deep_Library_Hierarchy`

*
  :ref:`Deeply_Nested_Generics`

*
  :ref:`Deeply_Nested_Inlining`

*
  :ref:`Default_Parameters`

*
  :ref:`Default_Values_For_Record_Components`

*
  :ref:`Deriving_From_Predefined_Type`

*
  :ref:`Direct_Calls_To_Primitives`

*
  :ref:`Discriminated_Records`

*
  :ref:`Downward_View_Conversions`

*
  :ref:`Enumeration_Ranges_In_CASE_Statements`

*
  :ref:`Enumeration_Representation_Clauses`

*
  :ref:`Exceptions_As_Control_Flow`

*
  :ref:`Exits_From_Conditional_Loops`

*
  :ref:`EXIT_Statements_With_No_Loop_Name`

*
  :ref:`Expanded_Loop_Exit_Names`

*
  :ref:`Explicit_Full_Discrete_Ranges`

*
  :ref:`Expression_Functions`

*
  :ref:`Fixed_Equality_Checks`

*
  :ref:`Float_Equality_Checks`

*
  :ref:`Forbidden_Attributes`

*
  :ref:`Forbidden_Pragmas`

*
  :ref:`Function_Style_Procedures`

*
  :ref:`Generics_In_Subprograms`

*
  :ref:`GOTO_Statements`

*
  :ref:`Implicit_IN_Mode_Parameters`

*
  :ref:`Implicit_SMALL_For_Fixed_Point_Types`

*
  :ref:`Improperly_Located_Instantiations`

*
  :ref:`Improper_Returns`

*
  :ref:`Maximum_Parameters`

*
  :ref:`Library_Level_Subprograms`

*
  :ref:`Local_Packages`

*
  :ref:`Metrics_Cyclomatic_Complexity`

*
  :ref:`Metrics_Essential_Complexity`

*
  :ref:`Metrics_LSLOC`

*
  :ref:`Misnamed_Controlling_Parameters`

*
  :ref:`Identifier_Suffixes`

*
  :ref:`Membership_Tests`

*
  :ref:`Multiple_Entries_In_Protected_Definitions`

*
  :ref:`Name_Clashes`

*
  :ref:`Nested_Subprograms`

*
  :ref:`No_Inherited_Classwide_Pre`

*
  :ref:`Non_Qualified_Aggregates`

*
  :ref:`Non_Short_Circuit_Operators`

*
  :ref:`Non_SPARK_Attributes`

*
  :ref:`Non_Tagged_Derived_Types`

*
  :ref:`Non_Visible_Exceptions`

*
  :ref:`Null_Paths`

*
  :ref:`Numeric_Literals`

*
  :ref:`Objects_Of_Anonymous_Types`

*
  :ref:`OTHERS_In_Aggregates`

*
  :ref:`OTHERS_In_CASE_Statements`

*
  :ref:`OTHERS_In_Exception_Handlers`

*
  :ref:`Outer_Loop_Exits`

*
  :ref:`Overloaded_Operators`

*
  :ref:`Overly_Nested_Control_Structures`

*
  :ref:`Parameters_Out_Of_Order`

*
  :ref:`POS_On_Enumeration_Types`

*
  :ref:`Positional_Actuals_For_Defaulted_Generic_Parameters`

*
  :ref:`Positional_Actuals_For_Defaulted_Parameters`

*
  :ref:`Positional_Components`

*
  :ref:`Positional_Generic_Parameters`

*
  :ref:`Positional_Parameters`

*
  :ref:`Predicate_Testing`

*
  :ref:`Predefined_Numeric_Types`

*
  :ref:`Printable_ASCII`

*
  :ref:`Representation_Specifications`

*
  :ref:`Quantified_Expressions`

*
  :ref:`Raising_External_Exceptions`

*
  :ref:`Raising_Predefined_Exceptions`

*
  :ref:`Separate_Numeric_Error_Handlers`

*
  :ref:`Slices`

*
  :ref:`Specific_Parent_Type_Invariant`

*
  :ref:`Specific_Pre_Post`

*
  :ref:`Specific_Type_Invariants`

*
  :ref:`Subprogram_Access`

*
  :ref:`Too_Many_Dependencies`

*
  :ref:`Too_Many_Primitives`

*
  :ref:`Too_Many_Parents`

*
  :ref:`Unassigned_OUT_Parameters`

*
  :ref:`Uncommented_BEGIN_In_Package_Bodies`

*
  :ref:`Recursive_Subprograms`

*
  :ref:`Unchecked_Address_Conversions`

*
  :ref:`Unchecked_Conversions_As_Actuals`

*
  :ref:`Unconditional_Exits`

*
  :ref:`Unconstrained_Array_Returns`

*
  :ref:`Uninitialized_Global_Variables`

*
  :ref:`Universal_Ranges`

*
  :ref:`Unnamed_Blocks_And_Loops`

*
  :ref:`USE_PACKAGE_Clauses`

*
  :ref:`Visible_Components`

*
  :ref:`Volatile_Objects_Without_Address_Clauses`
