Я очень новичок в Ada/SPARK. Я пытался следовать некоторые учебники здесь -SPARK: gnatprove с опцией -gnato13 неузнаваем?
http://docs.adacore.com/spark2014-docs/html/ug/gnatprove.html
Предположим, я бегу пример ISQRT дал здесь (http://docs.adacore.com/spark2014-docs/html/ug/gnatprove.html#id19). Все коды (*.ads
и *.adb
) поставляются в виде проекта под названием isqrt.gpr
и команды, я бегу это -
:~$ gnatprove -gnato13 -P isqrt.gpr
и выход я получаю -
Phase 1 of 3: frame condition computation ...
Phase 2 of 3: analysis and translation to intermediate language ...
Phase 3 of 3: generation and proof of VCs ...
analyzing isqrtsubtyped, 0 checks
analyzing isqrtsubtyped.ISQRT, 13 checks
isqrtsubtyped.ads:7:31: warning: overflow check might fail
gprbuild: *** compilation phase failed
gnatprove: error during generation and proof of VCs, aborting.
В учебном пособии говорится, что мне нужно предоставить коммутатору под названием -gnato13
, чтобы он пропустил некоторые проверки переполнения., Но, по-видимому, этот переключатель неприемлем.
любая идея?
Я подозреваю, что ваша проблема в том, что документы на сайте AdaCore постоянно развиваются, как и сами инструменты SPARK, и вы используете моментальный снимок SPARK GPL 2014. Вероятность того, что документы меняются под ногами, - это почему политика StackOverflow ** явно содержит проблемный исходный код в вопросе **. Нет ничего плохого в предоставлении ссылки. Вы также должны ** показывать фактические сообщения об ошибках **. –
В этом случае, оказывается, проблема была не в вашем коде, а в том, как вы вызывали 'gnatprove'. Тем не менее, это обычно помогает нам помочь вам, если вы разместите код, команду компилятора и точное сообщение об ошибке здесь. –
@SimonWright обновлен. – ramgorur