時々自前で野良でソースからコンパイールしますがO3でやると色々警告が出ちゃうものがあります...
なので大体がO2でやってます。コンパイール時間と出来上がったバイナリ容量と動きでコスパ良いのがO2でした

O3で出る警告。なんなんだいこれは?
ちなみにgcc-11だと出ないけどgcc-12にしたら出るようになった

warning: ‘void* __builtin_memcpy(void*, const void*, long unsigned int)’ accessing 9223372036854775810 or more bytes at offsets [18, 9223372036854775807] and 17 may overlap up to 9223372036854775813 bytes at offset -3 [-Wrestrict]
435 | return static_cast<char_type*>(__builtin_memcpy(__s1, __s2, __n));