-
- Выражение "object" имеет значение (содержимое объекта), и это значение должно быть вычислено (для того и volatile, чтобы и при оптимизации тоже), даже если оно не используется. Вот и получается чтение содержимого объекта из памяти SciFi(185 знак., 11.07.2018 17:32 - 17:39)
- :) в другой теме этого форума утверждаются другое что если результат volatile не используется, компилятор имеет право убрать. - VLLV(11.07.2018 18:18)
- Не путайте локальные с глобальными! Обращения к глобальному волатильному не будут оптимизированы. И другого никто не утверждал. Nikolay_Po(107 знак., 11.07.2018 23:51)
- Как йурист йуристу: а где это написано? - SciFi(12.07.2018 00:45)
- Это вопрос трактовки написанного. Если компилятор сам, своими "руками" выделил память для локальной переменной, по произвольному адресу, то по завершению этого контекста он имеет полное моральное право эту ячейку "убить". Nikolay_Po(1768 знак., 12.07.2018 10:36)
- Почему "volatile как запрет оптимизации" - это упущение стандарта? Скорее, упущением следует назвать недостаток средств для работы с регистрами и потоками. Из этих средств только volatile и есть, практически. Вот на него шишки и сыпятся. - SciFi(12.07.2018 10:46)
- Я согласен, что если переменную объявили volatile, то оптимизировать, по стандарту нельзя. Говоря про упущение стандарта, я имел ввиду отсутствие оговорки, что не оптимизируется лишь переменная, для которой был выделен адрес вне рамок текущего Nikolay_Po(244 знак., 12.07.2018 10:58)
- А что вообще можно придумать для работы с регистрами в условиях множества архитектур? - VLLV(12.07.2018 10:49)
- Почему "volatile как запрет оптимизации" - это упущение стандарта? Скорее, упущением следует назвать недостаток средств для работы с регистрами и потоками. Из этих средств только volatile и есть, практически. Вот на него шишки и сыпятся. - SciFi(12.07.2018 10:46)
- Это вопрос трактовки написанного. Если компилятор сам, своими "руками" выделил память для локальной переменной, по произвольному адресу, то по завершению этого контекста он имеет полное моральное право эту ячейку "убить". Nikolay_Po(1768 знак., 12.07.2018 10:36)
- Как йурист йуристу: а где это написано? - SciFi(12.07.2018 00:45)
- ересь. линукс (драйверы) сразу перестанет работать: например сброс аппаратного фифо делают чтением с выкидыванием результата. - 3m(11.07.2018 21:17)
- Ссылку в студию. Волатильный срач лучше хохлосрача. - SciFi(11.07.2018 18:44)
- с мобилы после пива не смогу. в микропроцессорах в сладкоежкиной теме - VLLV(11.07.2018 18:52)
- Там ветка разрослась огого. Сладкоежка наговорил на срок. В смысле ереси всякой :-) - SciFi(11.07.2018 21:53)
- с мобилы после пива не смогу. в микропроцессорах в сладкоежкиной теме - VLLV(11.07.2018 18:52)
- Не путайте локальные с глобальными! Обращения к глобальному волатильному не будут оптимизированы. И другого никто не утверждал. Nikolay_Po(107 знак., 11.07.2018 23:51)
- :) в другой теме этого форума утверждаются другое что если результат volatile не используется, компилятор имеет право убрать. - VLLV(11.07.2018 18:18)
- Выражение "object" имеет значение (содержимое объекта), и это значение должно быть вычислено (для того и volatile, чтобы и при оптимизации тоже), даже если оно не используется. Вот и получается чтение содержимого объекта из памяти SciFi(185 знак., 11.07.2018 17:32 - 17:39)