The OpenNET Project / Index page

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



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

Оглавление

Оптимизация кода компилятором может привести к появлению про..., opennews (?), 30-Окт-13, (0) [смотреть все]

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


9. "Оптимизация кода компилятором может привести к появлению про..."  +7 +/
Сообщение от Аноним (-), 30-Окт-13, 12:36 
вообще забавно:
сначала обратиться к структуре по указателю (*sk = tun->sk), а уже затем проверить указатель на NULL
Ответить | Правка | Наверх | Cообщить модератору

28. "Оптимизация кода компилятором может привести к появлению про..."  +3 +/
Сообщение от Crazy Alex (ok), 30-Окт-13, 13:39 
Да уж, возмущаться таким кодом - умильно.

С первым примером, конечно, надо ворнинги бы выдавать или статикой проверять, но косяком компилятора это я бы не называл. Тем более, что проблема широко известна, как и решение -  "if (buf_end > buf && buf_end - buf > len)". Допустим, в писании бинарного поиска практически всегда обращают внимание на то, то надо не (a+b)/2 писать, а (a-b)/2 - именно из-за возможного переполнения.

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

56. "Оптимизация кода компилятором может привести к появлению про..."  +/
Сообщение от dq0s4y71 (ok), 30-Окт-13, 14:26 
Зачем так сложно? :) Вот то, что имели ввиду авторы, но не осилили реализовать:

        if ((intptr_t)buf + len < buf)

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

100. "Оптимизация кода компилятором может привести к появлению про..."  +/
Сообщение от Аноним (-), 30-Окт-13, 16:27 
> if ((intptr_t)buf + len < buf)

И что, компилятор это не выкинет?

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

111. "Оптимизация кода компилятором может привести к появлению про..."  +/
Сообщение от dq0s4y71 (ok), 30-Окт-13, 17:12 
Проверьте :)
Ответить | Правка | Наверх | Cообщить модератору

106. "Оптимизация кода компилятором может привести к появлению про..."  +/
Сообщение от Crazy Alex (ok), 30-Окт-13, 17:04 
Или так, но это optional тип.
Ответить | Правка | К родителю #56 | Наверх | Cообщить модератору

113. "Оптимизация кода компилятором может привести к появлению про..."  +/
Сообщение от dq0s4y71 (ok), 30-Окт-13, 17:15 
Что значит optional? Это стандартный тип, начиная с С99.
Ответить | Правка | Наверх | Cообщить модератору

116. "Оптимизация кода компилятором может привести к появлению про..."  +/
Сообщение от Crazy Alex (ok), 30-Окт-13, 17:29 
n1124.pdf

7.18.1.4

...These types are optional

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

125. "Оптимизация кода компилятором может привести к появлению про..."  +/
Сообщение от dq0s4y71 (ok), 30-Окт-13, 17:46 
Да, действительно.
Ответить | Правка | Наверх | Cообщить модератору

204. "Оптимизация кода компилятором может привести к появлению..."  +/
Сообщение от arisu (ok), 31-Окт-13, 08:57 
> Зачем так сложно? :) Вот то, что имели ввиду авторы, но не
> осилили реализовать: if ((intptr_t)buf + len < buf)

беда в том, что значение этого выражения всё равно не определено, если случилось переполнение. так что этот код точно такой же бессмысленный, как и код из новости.

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

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

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




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

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