The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз набора компиляторов GCC 14, opennews (??), 07-Май-24, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


1. "Релиз набора компиляторов GCC 14"  +15 +/
Сообщение от Аноним (1), 07-Май-24, 14:26 
> Добавлено новое предупреждение "-Wanalyzer-infinite-loop" для выявления бесконечных циклов

Они решили проблему остонова! Вот что значит энтузиасты, вот что значит сообщество, миллиардеры из гаража!

Ответить | Правка | Наверх | Cообщить модератору

15. "Релиз набора компиляторов GCC 14"  –6 +/
Сообщение от Sw00p aka Jerom (?), 07-Май-24, 15:25 
находят конструкцию while (true), дальше ищут в ней break, если не нашли - infinite-loop, если нашли, то проверяют на наличие условий always-true или always-false. Самый примитивный случай.
Ответить | Правка | Наверх | Cообщить модератору

25. "Релиз набора компиляторов GCC 14"  +8 +/
Сообщение от Аноним (25), 07-Май-24, 15:59 
while (true) if (false) break;
Ответить | Правка | Наверх | Cообщить модератору

27. "Релиз набора компиляторов GCC 14"  +7 +/
Сообщение от Fracta1L (ok), 07-Май-24, 16:08 
Штош, добавим и такую проверку.
Ответить | Правка | Наверх | Cообщить модератору

47. "Релиз набора компиляторов GCC 14"  –1 +/
Сообщение от Аноним (47), 07-Май-24, 17:29 
while (true) {
#define break continue
  break;
}
Ответить | Правка | Наверх | Cообщить модератору

54. "Релиз набора компиляторов GCC 14"  +4 +/
Сообщение от unknown (??), 07-Май-24, 18:21 
Анализируется AST после препроцессинга
Ответить | Правка | Наверх | Cообщить модератору

57. "Релиз набора компиляторов GCC 14"  +3 +/
Сообщение от kravich (ok), 07-Май-24, 18:34 
Ты же понимаешь, что AST уже после прохода препроцессора строится?
Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

61. "Релиз набора компиляторов GCC 14"  +11 +/
Сообщение от Аноним (-), 07-Май-24, 18:55 
> while (true) {
> #define break continue
>  break;
> }

Решил как-то анон компилер препроцессором обдурить. А оказалось что обдурили его - компилер после препроцессора работает! Вот что бывает если маны не читать.

Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

90. "Релиз набора компиляторов GCC 14"  +5 +/
Сообщение от Аноним (47), 07-Май-24, 22:22 
Неужели до сих непонятно?! После препроцессора работает! Пойми наконец, ну! Да что ж ты бестолковый такой, ну?!
Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

132. "Релиз набора компиляторов GCC 14"  +4 +/
Сообщение от Аноним (132), 08-Май-24, 10:51 
Коллеги, кто ещё о препроцессоре не написал? Просьба не затягивать, отписаться по возможности скорее.
Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

141. "Релиз набора компиляторов GCC 14"  +/
Сообщение от Sw00p aka Jerom (?), 08-Май-24, 12:40 
> Коллеги, кто ещё о препроцессоре не написал? Просьба не затягивать, отписаться по
> возможности скорее.

а препроцессор это обызательная часть компилятора ЯП?

Ответить | Правка | Наверх | Cообщить модератору

144. "Релиз набора компиляторов GCC 14"  +/
Сообщение от Аноним (144), 08-Май-24, 13:57 
Именно компилятора С - да, обязятельная.
Ответить | Правка | Наверх | Cообщить модератору

172. "Релиз набора компиляторов GCC 14"  +1 +/
Сообщение от Аноним (-), 08-Май-24, 23:45 
>> Коллеги, кто ещё о препроцессоре не написал? Просьба не затягивать, отписаться по
>> возможности скорее.
> а препроцессор это обызательная часть компилятора ЯП?

В случае С и C++ это тупо часть стандарта. Должен быть, иначе это noncompliant.

Ответить | Правка | К родителю #141 | Наверх | Cообщить модератору

71. "Релиз набора компиляторов GCC 14"  +/
Сообщение от Sw00p aka Jerom (?), 07-Май-24, 19:24 
> while (true) if (false) break;

ну да самый примитивный случай, выявляется в compile-time.

Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

106. "Релиз набора компиляторов GCC 14"  +4 +/
Сообщение от 12yoexpert (ok), 08-Май-24, 00:50 
чего только не придумают, лишь бы goto не юзать
Ответить | Правка | К родителю #15 | Наверх | Cообщить модератору

152. "Релиз набора компиляторов GCC 14"  +/
Сообщение от Аноним (152), 08-Май-24, 15:23 
goto?
Ответить | Правка | К родителю #15 | Наверх | Cообщить модератору

163. "Релиз набора компиляторов GCC 14"  +/
Сообщение от Sw00p aka Jerom (?), 08-Май-24, 20:44 
> goto?

если че, это безусловный переход.

Ответить | Правка | Наверх | Cообщить модератору

168. "Релиз набора компиляторов GCC 14"  +/
Сообщение от Аноним (168), 08-Май-24, 22:00 
Та по сути while в итоге превратится в тот же goto, только условие ещё будет проверять))
Ну зато адепты кода без goto будут уверены что то что в скобочках - безопасно.
Ответить | Правка | Наверх | Cообщить модератору

170. "Релиз набора компиляторов GCC 14"  +/
Сообщение от Sw00p aka Jerom (?), 08-Май-24, 22:57 
> Та по сути while в итоге превратится в тот же goto, только
> условие ещё будет проверять))

разница в том, что если юзать goto, то по определению уже возможен бесконечный цикл. И это используется осознанно. А кто-то разве запрещал в программе бесконечные циклы?

А вот в случае с условным циклов, должно быть задано условие конечности (если не иначе) цикла, и вот тут если есть возможность статически предположить бесконечность цикла, то заранее сообщить ворнингом, вероятно непредвиденное (неожиданное) поведение. А как предположить? попыткой вычислить условное выражение на вечную-истину или вечную-ложь.

В англ вики дан вот такой пример:

"""
For example, in pseudocode, the program

while (true) continue

does not halt; rather, it goes on forever in an infinite loop. On the other hand, the program

"""

Это что за ересь? Они считают, что ненайдется алгоритм (статический анализатор), который может точно сказать, что это бесконечный цикл? Эт что за пример?

Ответить | Правка | Наверх | Cообщить модератору

213. "Релиз набора компиляторов GCC 14"  +/
Сообщение от Аноним (213), 15-Май-24, 17:00 
В случае с goto дело не в небезопасности, а лапшекодовости.
Ответить | Правка | К родителю #168 | Наверх | Cообщить модератору

215. "Релиз набора компиляторов GCC 14"  +/
Сообщение от n00by (ok), 15-Май-24, 19:32 
В случае goto дело в том, что аббревиатура КА не гуглится в Википедии.
Ответить | Правка | Наверх | Cообщить модератору

60. "Релиз набора компиляторов GCC 14"  +/
Сообщение от Nv (?), 07-Май-24, 18:52 
> миллиардеры из гаража

Ты в каком мире фантазии. Это было сделано с условием что либо получить. Пока ничего нету так что скоро уезжаю.

Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру