7.2.6.3. Miscellaneous warnings reported by GNATprove

The following table shows default warnings reported by GNATprove outside of flow analysis and proof.

Message Kind

Explanation

address to access conversion

call to conversion function is assumed to return a valid access designating a valid value

volatile and atomic status of aliases

aliased objects should both be volatile or non-volatile, and both be atomic or non-atomic

volatile properties of aliases

aliased objects should have the same volatile properties

attribute Valid always True

attribute Valid is assumed to return True

initialization of alias

initialization of object is assumed to have no effects on other non-volatile objects

function Is_Valid always return True

function Is_Valid is assumed to return True

procedure not terminating normally nor abnormally

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 message justified

only proved check messages justified by this pragma

Terminating deprecated

Terminating, Always_Return, and Might_Not_Return annotations are ignored

External Axiomatizations not supported

External Axiomatizations are not supported anymore, ignored

pragma ignored

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

unreferenced function

analyzing unreferenced function

unreferenced procedure

analyzing unreferenced procedure

useless Relaxed_Initialization aspect on function result

function result annotated with Relaxed_Initialization cannot be partially initialized

useless Relaxed_Initialization aspect on object

object annotated with Relaxed_Initialization cannot be partially initialized

variant not recursive

no recursive call visible on subprogram with Subprogram_Variant

The following table shows warnings guaranteed to be reported by GNATprove.

Message Kind

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

imprecisely supported 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 table shows warnings reported by GNATprove when using switch --pedantic.

Message Kind

Explanation

string 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