[sisyphus] Сборка FORTRAN-программ
Sergey Vlasov
vsu на altlinux.ru
Пн Июн 27 09:49:08 UTC 2011
On Mon, Jun 27, 2011 at 11:18:05AM +0400, Sergei Epiphanov wrote:
> В одной из программ нашёл интересный кусок, который перестал собираться. Решил
> проверить такой программой:
>
> test.for:
> PROGRAM test
> INTEGER(4) I
> DO 1 I=400
В "древнем" варианте FORTRAN пробелы фактически игнорируются, и этот
оператор рассматривается как присваивание переменной DO1I значения 400;
переменная I остаётся неинициализированной. Вообще классический вариант
подобной ошибки - точка вместо запятой.
Можно ещё добавить опцию -fdump-parse-tree, чтобы увидеть, во что именно
этот код превращается в компиляторе.
> 1 WRITE(*,*)I
> END PROGRAM
>
>
> Программа командой 'gfortran -ffixed-form test.for -o test' компилируется и
> запускается, но вывод непонятно какой: каждый раз выпадает случайное число (к
> примеру -1081112844, -1074562380 и другие подобные). Глюк компилятора или как?
> Система - Сизиф прошлопятничный. gcc4.5-fortran-4.5.1-alt8. Из gcc стоит
> только версия 4.5.1-alt8 (пересечений с другими версиями нет).
>
> При компиляции с опцией -ffree-form вместо -ffixed-form компилятор выдаёт ошибку
> "Syntax error".
Действительно, в варианте free form этот изврат с игнорированием пробелов
наконец-то убрали.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 189 байтов
Описание: Digital signature
Url : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20110627/b6fea1e1/attachment-0001.bin>
Подробная информация о списке рассылки Sisyphus