Summary: | gfortran4.1 и русская буква 'я' | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | serpiph <serpiph> |
Component: | gcc4.1-fortran | Assignee: | Dmitry V. Levin <ldv> |
Status: | CLOSED WONTFIX | QA Contact: | qa-sisyphus |
Severity: | major | ||
Priority: | P3 | CC: | glebfm, grenka, mike |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
serpiph
2006-05-16 17:05:48 MSD
Ещё наткнулся на букву 'ю': program test write (*,*) 'ю' end Выдаёт ошибку In file test.for:2 write (*,*) '\xFE' 1 Error: Unterminated character constant beginning at (1) А программа program test write (*,*) 'я' end Выдаёт ошибку In file test.for:2 write (*,*) '\xFF' 1 Error: Syntax error in WRITE statement at (1) С другими буквами всё нормально компилится. Дополнительные тесты показали, что вариант с константами Холлерита: program test2 5 format (1Hя) write (*,1) end нормально собирается и работает даже без Warning. А вариант program test3 6 format (s) write (*,6) 1Hя end приводит к In file test.for:3 write (*,6) 1H\xFF 1 Warning: Extension: Hollerith constant at (1) test.for: In function 'MAIN__': test.for:1: internal compiler error: Bad IO basetype (9) Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://bugzilla.altlinux.ru/> for instructions. вне зависимости от варианта константы. На gcc4.4-fortran-4.4.2-alt2.M51.1: f77 test.f -o test test.f:2.15: 5 write ('\xC4\xCC\xC9\xCE\xCE\xC1\xD1 \xD3\xD4\xD2\xCF\xCB\xC1') 1 Error: UNIT specification at (1) must be an INTEGER expression or a CHARACTER variable make: *** [test] Error 1 Видимо, всё-таки в апстрим. Во-первых write ('длинная строка') синтаксически неверно. Во-вторых следующий тестовый пример прекрасно работает в gcc version 7.3.1 20180130 (ALT 7.3.1-alt3) (GCC) 1 program test 2 print *, "абвгдеёжзийклмн 3 * опрстуфхцчшщъыьэюя" 4 write (*, "(A36 A36)") "АБВГДЕЁЖЗИЙКЛМН", 5 * 'ОПРСТУФХЦЧШЩЪЫЬЭЮЯ' 6 end Багу закрываю как WONTFIX для gcc4.1-fortran. Проверил в версии 7.3.1, теперь проблем с русскими буквами нет, согласен. |