From 725aff6b7afa6fb0cea24d13d3733d21a984618b Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Wed, 10 Nov 2021 10:57:07 +0300 Subject: [PATCH] =?utf8?q?=D0=A1=D0=B8=20=D0=B4=D0=BE=D0=BB=D0=B6=D0=B5?= =?utf8?q?=D0=BD=20=D1=83=D0=BC=D0=B5=D1=80=D0=B5=D1=82=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit http://cmustdie.com/ От Столярова (d026b3c3e20a717c7fd8aad8f5377c4fc4b90d0b) узнал про этот сайт, прочитал. Согласен что со всеми этими undefined behaviour жопа. Но, в конце есть выдержка диалога одного из разработчиков GCC (Andrew Pinski), который своим изменением (якобы) поломал кучу кода. Вот с ходу, честно говоря, я на стороне этого Пински полностью. Уж извините, но тот факт, что масса людей написала security-critical код полагаясь не шибко корректно -- это их проблемы. С какого чёрта компилятор должен думать о fail-ах кучи остальных людей и делать по умолчанию совместимость с их поведением? Есть отдельный флаг -fwrapv, но включать его по умолчанию, с какой стати? Да, с каждой новой версией компилятора и прочего, я считаю нормально проверять что в них изменилось и как теперь надо править параметры сборки для своего не очень корректного кода. Более того, задумываться о возможности переполнения мне тоже приходилось, когда я начинал писать на Си. И у меня почти идентичный код как у Пински получился. Ибо только так у меня была чёткая уверенность что оно будет отрабатывать как я ожидаю без подвохов. Но я согласен что сам факт этих дискуссий и ругани, в первую очередь, говорит плохо о стандарте Си, из-за которого вообще возможны такие эксцессы. Но, блин, аргументы про Ариан-5 -- говорят только об идиотизме людей которые пишут на столь опасных языках такой опасный код. Вообще риторика felix-gcc -- хамская и вообще удивительно как Пински спокойно отвечает и реагирует на это, попутно показывая *как* надо проверять на переполнение. -- 2.50.0