>Как можно перепутать обращение к невыравненным данным (по их размеру) с проблеммой strict алиасинга в (я бы посоветовал gena2x попробовать свой тест на ветке 2.x.x - 3.x.x например )?Пример приводился для x86/linux/gcc. sizeof(int)==sizeof(long) - о каком выравнивании (по размеру) речь?
Да, надо было дописать что -fstrict-aliasing только в четвертой ветке по умолчанию включается в -O2.
>Wstrict-aliasing=2 тогда все проблемные места будет сразу видно:
Не все, к сожалению, посему придётся разобраться в проблеме.
> То дает инструкцию компилятору считать что все указатели разных типов указывают на непересекающиеся области памяти.
Почти все, char* например - исключение.