php-master-changes 2019-04-12

今日は gcc のバグ回避、opcache のファイルキャッシュに関するバグ修正の 7.2 系以降へのバックポート、オブジェクトの new に関する処理のリファクタリング、コールフレーム初期化の修正の 7.4 系へのバックポート、テストの並列実行対策、Travis の設定で travis_wait を利用するようにする修正、mb_convert_encoding() のメモリリーク修正、各所のコンパイラ警告潰し、リリースビルドでも gcc で -Wall を付けるようにする修正、pdo_pgsql でテストの期待出力を英語じゃない版を考慮しての修正、pgsql で Windows 版でも libpq-fs.h を include するようにする修正、get_cfg_var() で ini の配列エントリにアクセスするテストの追加、iconv の怪しい最適化コードの修正、pgsql での無駄に複雑だった処理の修正があった！

# 2019-04-12
## nikic: Work around -Walloc-size-larger-than bug
- https://github.com/php/php-src/commit/09b2e2033319af2ba9b90fdc8dc821055742f706
- [7.4~]
- sapi/phpdbg で、gcc が[なんかスゴい警告出してくるバグ](https://chat.stackoverflow.com/transcript/message/45908915)の回避
- なおチャットの方で出てるのと同様に「フォルダ名ｗｗｗ」と思った

## weltling: Fix potential OPcache file cache related issues
- https://github.com/php/php-src/commit/5477d683008790dc47a13901f9d8acd6332955ae
- [7.2~]
- ext/opcache で、ファイルキャッシュに関するバグ修正の 7.2 系以降へのバックポート

## dstogov: Added test
- https://github.com/php/php-src/commit/db93c26e6d77e615957d47d6284ec49763d42113
- [7.4~]
- コンストラクタから例外が投げられた際、デストラクタが呼ばれないことのテストを追加
- [#29368](https://bugs.php.net/bug.php?id=29368) のテストケースを足した形なもよう

## dstogov: Replace "ZEND_CALL_CTOR" hack by additional live-range
- https://github.com/php/php-src/commit/88a2268d6b9ff152399a8761dc826ce414c0b985
- [7.4~]
- オブジェクトの new に関する処理をリファクタリング
- ZEND_CALL_CTOR のフラグを見てた箇所が追加の live-range 発行で単純化されているもよう

## dstogov: Backported call frame initialization improvement
- https://github.com/php/php-src/commit/55cc280429c453a89e33de7357fa80589470dfc3
- [7.4~]
- [コールフレーム初期化の修正](https://qiita.com/sj-i/items/0789b154ba6624dcf666#dstogov-simplify-call-frame-initialization)を 7.4 へバックポート

## nikic: Avoid directory clash in realpath tests
- https://github.com/php/php-src/commit/0774d67ff958baa0ad08ae202c90a6553417d39a
- [7.4~]
- realpath のテストで、ディレクトリの衝突を回避
- 並列実行対応

## nikic: Run compile step under travis_wait
- https://github.com/php/php-src/commit/0f777c768ca158f26cd16faaa37bd458164b119e
- [7.4~]
- Travis の設定で、コンパイルが長引いた時用にタイムアウト回避で travis_wait を利用するよう修正

## nikic: Use EMPTY_SWITCH_DEFAULT_CASE in php_unicode.c
- https://github.com/php/php-src/commit/8e8d129d7f2104ec0e1634e11126bfdfd5fb15e1
- [7.4~]
- ext/mbstring で、コンパイラの警告潰しに [EMPTY_SWITCH_DEFAULT_CASE](https://github.com/php/php-src/blob/e91de955be2a75457a2b63c9f72780dafb408202/Zend/zend_portability.h#L108) を使うよう修正

## nikic: Fix key leaks in mb_convert_encoding()
- https://github.com/php/php-src/commit/3b53d28e607ba60e8a25b1fca8317565eab28b77
- [7.2~]
- ext/mbstring で、[mb_convert_encoding()](https://www.php.net/manual/ja/function.mb-convert-encoding.php) のメモリリークを修正

## nikic: Mark zend_bailout() as a noreturn function
- https://github.com/php/php-src/commit/ce408504d5bc1b73fa43c8a2af9f21bdb3f0c5e4
- [7.4~]
- zend_bailout() を return しない関数として [ZEND_NORETURN](https://github.com/php/php-src/blob/e91de955be2a75457a2b63c9f72780dafb408202/Zend/zend_portability.h#L259) でマーク

## nikic: Fix uninitializde heredoc_tag use in readline
- https://github.com/php/php-src/commit/e5edbd0fe611c87363db5fc98fdb6e5177c00b11
- [7.4~]
- ext/readline で、初期化されていない変数にアクセスされる場合がある問題の修正

## nikic: Avoid potentially-uninitialized warnings in readline
- https://github.com/php/php-src/commit/edcf087ff914b05ab63e1ca126e31538da14bfe2
- [7.4~]
- ext/readline で、未初期化変数へのアクセス可能性の警告潰し

## nikic: Regroup expressions in php_schema.c to avoid array bounds warnings
- https://github.com/php/php-src/commit/88bfd2ae98fb163f4b8789b0cb41f7c01eff7c3f
- [7.4~]
- ext/soap で、配列の範囲外アクセスの警告潰し

## nikic: Fix potentially uninitialized warnings in phpdbg
- https://github.com/php/php-src/commit/c09b63595ef7edcaae6638932dceae531c26c3cf
- [7.4~]
- sapi/phpdbg で、未初期化変数へのアクセス可能性の警告潰し

## nikic: Remove odd variable assignment in escape_analysis
- https://github.com/php/php-src/commit/49ce7c0014a8ab3a5baa7c8e824ded58c1158a63
- [7.4~]
- ext/opcache で、不要な変数代入を削除（してコンパイラの警告潰し）

## nikic: Fix unused variable warnings in libmagic
- https://github.com/php/php-src/commit/ba40f505e5804a5f62a1e220b0dce9d417a27f4d
- [7.4~]
- ext/fileinfo で、libmagic の不使用変数の警告潰し

## nikic: Enable -Wall on release builds for GCC
- https://github.com/php/php-src/commit/3744533468767441f13ebbdda52f354ada0764fc
- [7.4~]
- リリースビルドでも gcc で -Wall を付けるよう修正
- デバッグビルドでは前から付いてた
- コメントで petk の人を召喚してるのがちょっと面白い（「あいつなら何か知らねーかな」感）

## nikic: Fix SOAP bailout handling
- https://github.com/php/php-src/commit/4f28bbda51e1a74a69da61ac875e17656f710f4f
- [7.4~]
- ext/soap で、bailout の処理を修正
- [setjmp() から変更した非 volatile 変数を longjmp 以降にアクセスするとアカン](https://stackoverflow.com/questions/7996825/why-volatile-works-for-setjmp-longjmp) ので、という

## cmb69: Fix tests wrt. internationalization
- https://github.com/php/php-src/commit/d07a6fdedfa3d894024f33431cad10d6c64d428f
- [7.2~]
- ext/pdo_pgsql で、テストの期待出力を英語じゃない版を考慮して修正

## cmb69: Include libpq-fs.h on Windows, too
- https://github.com/php/php-src/commit/54bdb25d9f9e30de3c27e9eca80746d34f2aefdf
- [7.4~]
- ext/pgsql で、Windows 版でも [libpq-fs.h](https://github.com/postgres/postgres/blob/97c39498e5ca9208d3de5a443a2282923619bf91/src/include/libpq/libpq-fs.h) を include するよう修正
- 逆になんでハードコードだったんだこれ

## nikic: Avoid unitialized variable warning in soap
- https://github.com/php/php-src/commit/afee7ed110b970f64e6f5d3139262097c462ceae
- [7.4~]
- ext/soap で、未初期化変数の警告潰し
- 一部処理の関数分離でちょっとリファクタリング

## nikic: Add test for get_cfg_var with array variable
- https://github.com/php/php-src/commit/733c61a89452adc0f8484f19ff1e30a6e4ca30bb
- [7.4~]
- [get_cfg_var()](https://www.php.net/manual/ja/function.get-cfg-var.php) で ini の配列エントリにアクセスするテストを追加
- 処理の修正も少ししてるっぽい

## nikic: Avoid uninitialized variable warnings in gmp
- https://github.com/php/php-src/commit/3d9c48035b237aad1bcb721331cd371ee03e79f7
- [7.4~]
- ext/gmp で、未初期化変数の警告潰し

## nikic: Avoid misc uninitialized variable warnings
- https://github.com/php/php-src/commit/339b0af42945829017491900b27e08d588241e0b
- [7.4~]
- その他の未初期化変数の警告潰し

## nikic: Avoid uninit warning in dtoa
- https://github.com/php/php-src/commit/e1ab68622815050dfb6ed3f927c438906c2569b9
- [7.4~]
- zend_dtoa() の未初期化変数の警告潰し

## nikic: Avoid uninit warnin in http_fopen_wrapper
- https://github.com/php/php-src/commit/b6b98bdf641c9d054638c60ec9bb3199d3164303
- [7.4~]
- http_fopen_wrapper の未初期化変数の警告潰し

## nikic: Remove dubious memcmp optimization in iconv
- https://github.com/php/php-src/commit/4b1491a7b1cb334f9d1f552d21ea1a4448fb3c40
- [7.4~]
- ext/iconv で、memcmp() の呼び出しが必要な場合のみ行われるよう最適化しているつもりっぽいびみょいのを単に memcmp() の呼び出しに修正

## nikic: Avoid uninit warning in ftp
- https://github.com/php/php-src/commit/91d59b122aa6e05e1b92d6ae5b84807eeff572f5
- [7.4~]
- ext/ftp で、未初期化変数の警告潰し

## nikic: Fix uninit warning in gd.c
- https://github.com/php/php-src/commit/7207110362f95a1edd4bbd0a511897461e88ad54
- [7.4~]
- ext/gd で、未初期化変数の警告潰し

## nikic: Don't use php_strtok_r in build_tablename
- https://github.com/php/php-src/commit/4cfa4fb55d8304ffab5860e7134d0705d27b4477
- [7.4~]
- ext/pgsql で、'.' を探す処理が無駄に複雑だったのを修正

## nikic: Fix strict aliasing violation in phpdbg
- https://github.com/php/php-src/commit/3c23084cf6ea04c9fe4396c9ae7e5c1d8bb3d37e
- [7.4~]
- sapi/phpdbg で、strict aliasing rule 違反のコードがあったのを修正
- ext/xsl の未初期化変数の修正も紛れ込んでるっぽいかな