OberonCore https://forum.oberoncore.ru/ |
|
Особенность WITH - предупреждение при компиляции https://forum.oberoncore.ru/viewtopic.php?f=2&t=3959 |
Страница 2 из 2 |
Автор: | Илья Ермаков [ Суббота, 12 Май, 2012 08:02 ] |
Заголовок сообщения: | Re: Особенность WITH - предупреждение при компиляции |
Ну да. На практике WITH и применяется обычно в паре с полиморфным VAR RECORD, а не с указателем. |
Автор: | Info21 [ Суббота, 12 Май, 2012 13:01 ] |
Заголовок сообщения: | Re: Особенность WITH - предупреждение при компиляции |
В общем, проблема достаточно маргинальная и давно понятая. А какой латратус. Раз в год приходит новый пассионарий -- и начинается ... Опять сто двадцать пять. |
Автор: | Иван Денисов [ Воскресенье, 13 Май, 2012 18:40 ] |
Заголовок сообщения: | Re: Особенность WITH - предупреждение при компиляции |
ИМХО «Опять сто двадцать пять» — это тоже «Опять сто двадцать пять». |
Автор: | QWERTYProgrammer [ Воскресенье, 13 Май, 2012 19:06 ] |
Заголовок сообщения: | Re: Особенность WITH - предупреждение при компиляции |
Насколько я понял, Kemet утверждает, что проблема не в WITH, а в другом месте. А именно, предупреждение 302 Цитата: List of Oberon Error Numbers ... 3. Warnings ... 302 guarded variable can be side-effected ... должно бы выдаваться при компиляции обсуждаемого кода: Dev/Mod/CPP.mod, но не выдается, т.к. предупереждения с отрицательными номерами > -700 игнорируются в Dev/Mod/CPM.mod. Соответственно, если подправить код в CPP.mod (-302 -> 302), то "опасный" код компилироваться не будет. (Предупреждение: сам ничего не проверял). |
Автор: | Info21 [ Воскресенье, 13 Май, 2012 19:24 ] |
Заголовок сообщения: | Re: Особенность WITH - предупреждение при компиляции |
Латратус всё равно латратус. |
Автор: | Роман М. [ Воскресенье, 13 Май, 2012 23:14 ] |
Заголовок сообщения: | Re: Особенность WITH - предупреждение при компиляции |
Info21 писал(а): В общем, проблема достаточно маргинальная и давно понятая. А какой латратус. Раз в год приходит новый пассионарий -- и начинается ... Опять сто двадцать пять. Выходит, на данную уязвимость компилятора не нужно обращать внимания, потому что это маловероятный случай и на практике почти не встречается. Я правильно уловил мысль? |
Автор: | Info21 [ Воскресенье, 13 Май, 2012 23:40 ] |
Заголовок сообщения: | Re: Особенность WITH - предупреждение при компиляции |
Роман М. писал(а): Я правильно уловил мысль? Нет, не правильно.
|
Автор: | Евгений Темиргалеев [ Четверг, 17 Май, 2012 12:38 ] |
Заголовок сообщения: | Re: Особенность WITH - предупреждение при компиляции |
viewtopic.php?p=72598#p72598 Info21 писал(а): Возникнет ли проблема в такой конструкции: viewtopic.php?p=72641#p72641 Илья Ермаков писал(а): На практике WITH и применяется обычно в паре с полиморфным VAR RECORD, а не с указателем. В этом случае приведение получится вынесением в процедуры.Код: PROCEDURE HandleType1 (VAR msg: Type1);
PROCEDURE HandleType2 (VAR msg: Type2); PROCEDURE HandleMsg (VAR msg: ANYREC); BEGIN IF msg IS Type1 THEN HandleType1(msg(Type1)) ELSIF msg IS Type2 THEN HandleType2(msg(Type2)) ... |
Автор: | QWERTYProgrammer [ Воскресенье, 20 Май, 2012 16:35 ] |
Заголовок сообщения: | Re: Особенность WITH - предупреждение при компиляции |
Попробовал пример из диссертации Шиперски в A2. Пример компилируется без ошибок или предупреждений. При выполнении комманды выдается трап Type guard failed. |
Страница 2 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |