From 3f2f2ebd3ca7c13eaa4f4bdb0043032d0daeac03 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Tue, 4 Jan 2022 13:24:08 +0300 Subject: [PATCH] =?utf8?q?=D0=9F=D1=80=D0=BE=20strict=20aliasing=20=D0=B2?= =?utf8?q?=20=D0=A1=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit https://lkml.org/lkml/2009/1/12/369 https://lkml.org/lkml/2018/6/5/769 https://danso.ca/blog/strict-aliasing/ https://habr.com/ru/post/114117/ https://bugzilla.kernel.org/show_bug.cgi?id=12597 https://bugzilla.mozilla.org/show_bug.cgi?id=1031653 https://stackoverflow.com/questions/47232954/what-does-fwrapv-do В 153271e2a5ebe0450329c630e19ab92022d9966f упоминал про strict aliasing и корректность использования char-ов. Торвальдс критикует в своём духе всю эту идею aliasing-а. А ещё они используют -fwrapv, предполагая что все архитектуры где они собираются используют 2's complement signed числа, иначе переполнение будет считаться UB и компилятор волен творить любую неожиданную дичь. Только в будущих стандартах 2's complement будет стандартом и переполнение в нём уже штатным поведением. -- 2.50.0