【deb系】Ubuntu Linux 74【ディストリ】 (251レス)
前次1-
抽出解除 レス栞

9
(1): 警備員[Lv.25] (ワッチョイ c28b-Fna2) 2024/08/11(日)12:36 ID:9LrmPIgc0(2/5) AAS
時々自前で野良でソースからコンパイールしますが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));
11
(1): 警備員[Lv.10][芽] (ワッチョイ ae9a-ucVn) 2024/08/11(日)14:16 ID:SflzYLFe0(2/5) AAS
>>9
それは restrict 修飾子に違反している警告
memcpy の引数は領域が重なってないことが必須でそれ前提で最適化されるんだが、その決まりが守られていないと言ってる
要はこのプログラムにはバグがあって O3 で最適化するのは危険なのでやめろと言われてる
正しい対応はプログラムのバグ修正。それまではO2 で我慢しろ
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.014s