将棋プログラミング

(将棋に関する)ソフトウェア開発のノウハウ等。

Xcode 10.2 の最適化のバグ

Xcode が 10.2 にアップデイトされ、それでアプリをリリースしたところ、一部の機種で動作が異常になった。
問題を確認できた機種は、iPhone 4siPad 3代目である。恐らく、32bit CPU の機種だろうと思われる。
ソースを変更していない部分で起きた問題なので、Xcode 10.2 の問題だろうと見当をつけ、Xcode 10.1 をダウンロードし、これを使うと、やはり問題なかった。
また、Xcode 10.2 でも、最適化を "None" にすると、問題がない。
以上の結果から、Xcode 10.2 の 32bit CPU に対する最適化のバグだと思われる。

昨年も Xcode をアップデイトしたとき、古い iOS の古い機種で問題が起きたときがあった。
そのときは、しばらく古い Xcode を使っていたが、古い Xcode を使い続けることもできないので、ソースを書き換え、問題を回避した。

何年も前にも、最適化すると問題が起きるアプリがあり、最適化をオフにしたときがあった。

追記:
Xcode 10.2.1 でも修正されていないことを確認した。

追記2:
Xcode 11.3.1 にも、この最適化のバグがある。
Objective-C で、構造体の要素にアクセスする際のバグである。
構造体に無意味な変数を追加することで、この最適化のバグを回避できた。
2020/03/15