.... The language does not define which of these two mechanisms is to
be adopted for parameter passing, nor whether different calls to the
same subprogram are to use the same mechanism. The execution of a
program is erroneous if its effect depends on which mechanism is
selected by the implementation.

And section 1.6 paragraph 6:

(c) Erroneous execution.

The language rules specify certain rules to be obeyed by Ada programs,
although there is no requirement on Ada compilers to provide either a
compilation-time or run-time detection of the violation of such
rules. .... The effect of erroneous execution is unpredictable.