7.2.6.3. Miscellaneous warnings reported by GNATprove
The following table shows default warnings reported by GNATprove outside of flow analysis and proof.
Warning Tag |
Explanation |
---|---|
address-to-access-conversion |
call to conversion function is assumed to return a valid access designating a valid value |
alias-volatile-atomic-mismatch |
aliased objects should both be volatile or non-volatile, and both be atomic or non-atomic |
alias-volatile-prop-mismatch |
aliased objects should have the same volatile properties |
attribute-valid-always-true |
attribute Valid is assumed to return True |
auto-lemma-calls |
the automatically instantiated lemma contains calls which cannot be arbitrarily specialized |
auto-lemma-different |
the automatically instantiated lemma contains calls to its associated function with different specializations |
auto-lemma-higher-order |
the automatically instantiated lemma is not annotated with Higher_Order_Specialization |
auto-lemma-specializable |
the automatically instantiated lemma does not contain any specializable calls to its associated function |
initialization-to-alias |
initialization of object is assumed to have no effects on other non-volatile objects |
is-valid-returns-true |
function Is_Valid is assumed to return True |
generic-not-analyzed |
GNATprove doesn’t analyze generics, only instances |
no-possible-termination |
procedure which does not return normally nor raises an exception cannot always terminate |
no-check-message-justified |
no check message justified by this pragma |
proved-check-justified |
only proved check messages justified by this pragma |
deprecated-feature |
Terminating, Always_Return, and Might_Not_Return annotations are ignored |
deprecated-feature |
External Axiomatizations are not supported anymore, ignored |
ignored-pragma |
pragma is ignored (it is not yet supported) |
overflow-mode-ignored |
pragma Overflow_Mode in code is ignored |
precondition-statically-false |
precondition is statically False |
restriction-ignored |
restriction is ignored (it is not yet supported) |
unreferenced-function |
analyzing unreferenced function |
unreferenced-procedure |
analyzing unreferenced procedure |
useless-relaxed-init-func-result |
function result annotated with Relaxed_Initialization cannot be partially initialized |
useless-relaxed-init-object |
object annotated with Relaxed_Initialization cannot be partially initialized |
variant-no-recursion |
no recursive call visible on subprogram with Subprogram_Variant |
The following table shows warnings guaranteed to be reported by GNATprove.
Warning Tag |
Explanation |
---|---|
assumed-always-terminates |
no Always_Terminates aspect available for subprogram, subprogram is assumed to always terminate |
assumed-global-null |
no Global contract available for subprogram, null is assumed |
imprecise-address-specification |
object with an imprecisely supported address specification: non-atomic objects should not be accessed concurrently, volatile properties should be correct, indirect writes to object to and through potential aliases are ignored, and reads should be valid |
The following warnings are disabled by default, and can be enabled collectively using switch --pedantic
, or individually using switch -W
.
Warning Tag |
Explanation |
---|---|
image-attribute-length |
string attribute has an implementation-defined length |
operator-reassociation |
possible operator reassociation due to missing parentheses |
representation-attribute-value |
representation attribute has an implementation-defined value |