diff options
author | Joe Watkins <krakjoe@php.net> | 2017-10-30 14:16:27 +0000 |
---|---|---|
committer | Joe Watkins <krakjoe@php.net> | 2017-10-30 14:16:27 +0000 |
commit | 37b0ad5537e7ccbdce6d81afa402c01885db79f1 (patch) | |
tree | ecaa6702241a9d88958d99655e613f7df07be6b8 | |
parent | 5262bd9ea3c5cecde0f92cf40b31245426173b30 (diff) | |
parent | a2cd2965d72290d24e1bb3906834662fd1be45d7 (diff) | |
download | php-git-37b0ad5537e7ccbdce6d81afa402c01885db79f1.tar.gz |
Merge branch 'PHP-7.1' of git.php.net:/php-src into PHP-7.1
* 'PHP-7.1' of git.php.net:/php-src:
Yet one attempt to mitigate the unzip error on AppVeyor
Ensure SDK is checked out before asking for version
Fix fetching the SDK version
Fix SDK version comparison and add more verbosity
Don't use the cache dependency, SDK version is handled in script
Remove status check on the SDK repo and add version check
Use abbrev
Catch with the latest AppVeyor unzip errors
Fixed type inference
-rw-r--r-- | .appveyor.yml | 1 | ||||
-rw-r--r-- | appveyor/build.bat | 13 | ||||
-rw-r--r-- | ext/opcache/Optimizer/zend_inference.c | 7 |
3 files changed, 17 insertions, 4 deletions
diff --git a/.appveyor.yml b/.appveyor.yml index e55c2adab2..d1c5c0f448 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -18,7 +18,6 @@ clone_depth: 64 cache: - c:\build-cache - - c:\build-cache\sdk -> .appveyor.yml environment: PHP_BUILD_CACHE_BASE_DIR: c:\build-cache diff --git a/appveyor/build.bat b/appveyor/build.bat index 31081bbe06..c4a21c7faa 100644 --- a/appveyor/build.bat +++ b/appveyor/build.bat @@ -2,6 +2,7 @@ set SDK_REMOTE=https://github.com/OSTC/php-sdk-binary-tools.git set SDK_BRANCH=%PHP_BUILD_SDK_BRANCH% +set SDK_RUNNER=%PHP_BUILD_CACHE_SDK_DIR%\phpsdk-vc14-%PLATFORM%.bat if not exist "%PHP_BUILD_CACHE_BASE_DIR%" ( echo Creating %PHP_BUILD_CACHE_BASE_DIR% @@ -13,17 +14,25 @@ if not exist "%PHP_BUILD_OBJ_DIR%" ( mkdir "%PHP_BUILD_OBJ_DIR%" ) +if not exist "%SDK_RUNNER%" ( + if exist "%PHP_BUILD_CACHE_SDK_DIR%" rmdir /s /q "%PHP_BUILD_CACHE_SDK_DIR%" +) + if not exist "%PHP_BUILD_CACHE_SDK_DIR%" ( echo Cloning remote SDK repository git clone --branch %SDK_BRANCH% %SDK_REMOTE% "%PHP_BUILD_CACHE_SDK_DIR%" 2>&1 -) else ( +) + +for /f "tokens=*" %%a in ('type %PHP_BUILD_CACHE_SDK_DIR%\VERSION') do set GOT_SDK_VER=%%a +echo Got SDK version %GOT_SDK_VER% +if NOT "%GOT_SDK_VER%" == "%PHP_BUILD_SDK_BRANCH:~8%" ( + echo Switching to the configured SDK version %SDK_BRANCH:~8% echo Fetching remote SDK repository git --git-dir="%PHP_BUILD_CACHE_SDK_DIR%\.git" --work-tree="%PHP_BUILD_CACHE_SDK_DIR%" fetch --prune origin 2>&1 echo Checkout SDK repository branch git --git-dir="%PHP_BUILD_CACHE_SDK_DIR%\.git" --work-tree="%PHP_BUILD_CACHE_SDK_DIR%" checkout --force %SDK_BRANCH% ) -set SDK_RUNNER=%PHP_BUILD_CACHE_SDK_DIR%\phpsdk-vc14-%PLATFORM%.bat if not exist "%SDK_RUNNER%" ( echo "%SDK_RUNNER%" doesn't exist exit /b 3 diff --git a/ext/opcache/Optimizer/zend_inference.c b/ext/opcache/Optimizer/zend_inference.c index 6e0d0cb5d9..1d142566ab 100644 --- a/ext/opcache/Optimizer/zend_inference.c +++ b/ext/opcache/Optimizer/zend_inference.c @@ -3075,7 +3075,12 @@ static int zend_update_type_info(const zend_op_array *op_array, } j = zend_ssa_next_use(ssa_ops, ssa_ops[i].result_def, j); } - UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); + if ((tmp & MAY_BE_ARRAY) && (tmp & MAY_BE_ARRAY_KEY_ANY)) { + UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def); + } else { + /* invalid key type */ + UPDATE_SSA_TYPE(t1, ssa_ops[i].op1_def); + } COPY_SSA_OBJ_TYPE(ssa_ops[i].op1_use, ssa_ops[i].op1_def); } /* FETCH_LIST on a string behaves like FETCH_R on null */ |