Skip to content
Go back

GCCのバグ:偽陽性の-Warray-bounds

· Updated:
  • 自作のビットセットクラスがGCCのO2ビルドで範囲外アクセス警告を出す、という不思議な現象に遭遇した
    • テンプレートで個数を受け取る実装をしている
    • -Warray-boundsが「部分的に範囲外アクセスしそう」と警告してくる
    • 256ビット分の配列しかないはずなのに、1024ビット辺りにアクセスしていると言ってくる
  • プログラムの流れを追って見た感じでは問題なさそう
    • ビット数で上限が決まっているので、そもそもそんなに大きく逸脱しないはず
  • 原因はテンプレートを使うと、直前のインスタンス化の状況に引っ張られるバグでした