Bug 10867

Summary: Strange READ statement from file when no enough data
Product: Sisyphus Reporter: serpiph <serpiph>
Component: gcc4.1-fortranAssignee: Dmitry V. Levin <ldv>
Status: CLOSED WONTFIX QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: glebfm, mike
Version: unstable   
Hardware: all   
OS: Linux   

Description serpiph 2007-02-19 16:47:28 MSK
Команда READ ведёт себя странно, когда при чтении их файла данные заканчиваются
на середине записи. При этом часть имеющихся данных всё-таки попадает в переменные.

Команды:
CHARACTER teq(360)
INTEGER stat,k
OPEN(UNIT=2,FILE='NAME',STATUS='OLD',ACCESS='DIRECT',RECL=360)
READ(2,REC=1,ERR=12,IOSTAT=stat)(teq(k),k=1,360)
12 <далее>

Если в файле менее 360 символов, то читается некоторая часть символов, заносится
в переменную teq, оставшиеся данные отбрасываются и если нет IOSTAT, то падает с
ошибкой несмотря на наличие ERR. Так, если в файле NAME реально 316 символов, то
принимаются только первые где-то 46. Версия 4.1.1-alt11, на версии 4.1.1-alt4
этот же кусок программы принимал все данные, но не выдавал ошибки (то есть всё
наоборот).
Comment 1 Michael Shigorin 2010-10-30 22:47:12 MSD
Если ещё актуально, то явно лучше в http://gcc.gnu.org/bugzilla/
Comment 2 Dmitry V. Levin 2018-07-13 04:30:54 MSK
Очевидно, неактуально.