1. Изо всех сил стараюсь не кормить троллей. 2. Продаю импортные ЭК - https://shop.fulcrum.ru/buy
-
- В C11 введен вызов memset_s, для которого запрещено удаление при оптимизации. Боже, какой ЧУДОВИЩНЫЙ "выход" :( И вообще, для каких идиотов существует такая "оптимизация"? Для животных, которые в случайном порядке добавляют Николай Коровин(47 знак., 14.11.2015 12:46)
- Код может генерировать тулза, код может быть обложен условной компиляцией, функция из какой-нибудь библиотеки может быть вызвана с константным параметром и т.д. - Lightelf(14.11.2015 13:44)
- ...но всё это при грамотном написании сводится к dead code, который не вызывается вообще (а не "вызывается-по-мнению-компилятора-зря"). Dead code вырезается куда как проще и надёжнее. - Николай Коровин(14.11.2015 13:52)
- Ну вот компилятор и считает такой memset за dead code. Так как результат не используется. - Lightelf(14.11.2015 13:56)
- Да, пардон, unreachable code. Dead code == unreachable code + dead store code. Unreachable надо резать однозначно, а dead store code -- скорее избегать возникновения, сводя к unreachable, нежели резать компилятором. - Николай Коровин(15.11.2015 14:40)
- ...а должен смотреть на точки следования, а не на результат... в точку приходы есть? Есть. Всё, свободен. Вот если бы инлайновая с константой... Николай Коровин(293 знак., 14.11.2015 14:05)
- А если после вызова bar массив ZeroData далее не используется, то компилятор имеет полное право вообще всю функцию удалить. Такое поведение в стандарте описано. Неизвестных отцов демократии спасет своевременно употребляемый volatile. - Lightelf(14.11.2015 14:40 - 14:44)
- Volatile-то да, это стопудово. А насчёт стандарта -- желательно бы поподробнее, в котором именно (эволюция всё-таки у языка длинная) и как регламентировано. Кстати, логично было бы использовать прагмы, в которые заворачивать функции, умеющие Николай Коровин(80 знак., 15.11.2015 13:57 - 14:04)
- Минуточку. Я думал, "прагма" переводится как "костыль". Или нет? - SciFi(15.11.2015 14:06)
- А прагмы как-то стандартизрованы, или каждый на свой лад? - Dingo(16.11.2015 15:54)
- Именно на свой лад. - SciFi(16.11.2015 15:55)
- Неее. Это memset_s переводится как "костыль". А прагма переводится как "...это приказ" :) Или как "вводная", по обстоятельствам %) "Я не буду тебе это на ассемблере объяснять, но надо сделать стековый вызов от первого к последнему, переменное Николай Коровин(112 знак., 15.11.2015 14:13 - 14:19)
- Дык я о том же - "приказ подставить костыль". - SciFi(15.11.2015 14:17)
- Приказ не умничать :) - Николай Коровин(15.11.2015 14:24)
- Дык я о том же - "приказ подставить костыль". - SciFi(15.11.2015 14:17)
- А прагмы как-то стандартизрованы, или каждый на свой лад? - Dingo(16.11.2015 15:54)
- Минуточку. Я думал, "прагма" переводится как "костыль". Или нет? - SciFi(15.11.2015 14:06)
- Volatile-то да, это стопудово. А насчёт стандарта -- желательно бы поподробнее, в котором именно (эволюция всё-таки у языка длинная) и как регламентировано. Кстати, логично было бы использовать прагмы, в которые заворачивать функции, умеющие Николай Коровин(80 знак., 15.11.2015 13:57 - 14:04)
- А если после вызова bar массив ZeroData далее не используется, то компилятор имеет полное право вообще всю функцию удалить. Такое поведение в стандарте описано. Неизвестных отцов демократии спасет своевременно употребляемый volatile. - Lightelf(14.11.2015 14:40 - 14:44)
- Ну вот компилятор и считает такой memset за dead code. Так как результат не используется. - Lightelf(14.11.2015 13:56)
- ...но всё это при грамотном написании сводится к dead code, который не вызывается вообще (а не "вызывается-по-мнению-компилятора-зря"). Dead code вырезается куда как проще и надёжнее. - Николай Коровин(14.11.2015 13:52)
- Код может генерировать тулза, код может быть обложен условной компиляцией, функция из какой-нибудь библиотеки может быть вызвана с константным параметром и т.д. - Lightelf(14.11.2015 13:44)
- В C11 введен вызов memset_s, для которого запрещено удаление при оптимизации. Боже, какой ЧУДОВИЩНЫЙ "выход" :( И вообще, для каких идиотов существует такая "оптимизация"? Для животных, которые в случайном порядке добавляют Николай Коровин(47 знак., 14.11.2015 12:46)