There is a set of checks based on computing a metric value and comparing the result with the specified upper (or lower, depending on a specific metric) value specified for a given metric. A construct is flagged if a given metric is applicable (can be computed) for it and the computed value is greater then (lover then) the specified upper (lower) bound.
The name of any metric-based rule consists of the prefix
followed by the name of the corresponding metric (see the table below).
For +R option, each metric-based rule has a numeric parameter
specifying the bound (integer or real, depending on a metric), -R
option for metric rules does not have a parameter.
The following table shows the metric names for that the corresponding metrics-based checks are supported by gnatcheck, including the constraint that must be satisfied by the bound that is specified for the check and what bound - upper (U) or lower (L) - should be specified.
|Check Name||Description||Bounds Value
|Essential complexity||Positive integer (U)
|Cyclomatic complexity||Positive integer (U)
|Logical Source Lines of Code||Positive integer (U)
The meaning and the computed values for all these metrics are exactly the same as for the corresponding metrics in gnatmetric.
Example: the rule
+RMetrics_Cyclomatic_Complexity : 7
means that all bodies with cyclomatic complexity exceeding 7 will be flagged.
To turn OFF the check for cyclomatic complexity metric, use the following option: