Commit c380bd576fd for php.net

commit c380bd576fd640fa15e9849533c8e085bec0e768
Author: Ilija Tovilo <ilija.tovilo@me.com>
Date:   Mon Apr 20 19:19:59 2026 +0200

    [skip ci] Backport CI changes

diff --git a/.github/matrix.php b/.github/matrix.php
index dec8c7d249c..18c2ef1269b 100644
--- a/.github/matrix.php
+++ b/.github/matrix.php
@@ -144,12 +144,15 @@ function select_jobs($repository, $trigger, $nightly, $labels, $php_version, $re
         $jobs['SOLARIS'] = true;
     }
     if ($all_jobs || !$no_jobs || $test_windows) {
-        $jobs['WINDOWS']['matrix'] = $all_variations
-            ? ['include' => [
-                ['asan' => true, 'opcache' => true, 'x64' => true, 'zts' => true],
-                ['asan' => false, 'opcache' => false, 'x64' => false, 'zts' => false],
-            ]]
-            : ['include' => [['asan' => false, 'opcache' => true, 'x64' => true, 'zts' => true]]];
+        $matrix = [['asan' => false, 'opcache' => true, 'x64' => true, 'zts' => true]];
+        if ($all_variations) {
+            $matrix[] = ['asan' => true, 'opcache' => true, 'x64' => true, 'zts' => true];
+            $matrix[] = ['asan' => false, 'opcache' => false, 'x64' => false, 'zts' => false];
+            if (version_compare($php_version, '8.5', '>=')) {
+                $matrix[] = ['asan' => false, 'opcache' => true, 'x64' => true, 'zts' => true, 'clang' => true];
+            }
+        }
+        $jobs['WINDOWS']['matrix'] = ['include' => $matrix];
         $jobs['WINDOWS']['config'] = version_compare($php_version, '8.4', '>=')
             ? ['vs_crt_version' => 'vs17']
             : ['vs_crt_version' => 'vs16'];
diff --git a/.github/workflows/test-suite.yml b/.github/workflows/test-suite.yml
index cf0ad1df647..4905dcb9ccb 100644
--- a/.github/workflows/test-suite.yml
+++ b/.github/workflows/test-suite.yml
@@ -413,10 +413,15 @@ jobs:
         with:
           enableOpcache: true
           jitType: tracing
+      - name: Generate coverage report
+        if: ${{ !cancelled() }}
+        run: make gcovr-xml
       - uses: codecov/codecov-action@v6
         if: ${{ !cancelled() }}
         with:
+          disable_search: true
           fail_ci_if_error: true
+          files: gcovr.xml
           token: ${{ secrets.CODECOV_TOKEN }}
           verbose: true
   COMMUNITY:
@@ -935,7 +940,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix: ${{ fromJson(inputs.branch).jobs.WINDOWS.matrix }}
-    name: "WINDOWS_${{ matrix.x64 && 'X64' || 'X86' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}${{ matrix.asan && '_ASAN' || ''}}"
+    name: "WINDOWS_${{ matrix.x64 && 'X64' || 'X86' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}${{ matrix.asan && '_ASAN' || ''}}${{ matrix.clang && '_CLANG' || ''}}"
     runs-on: windows-2022
     env:
       PHP_BUILD_CACHE_BASE_DIR: C:\build-cache
@@ -949,6 +954,7 @@ jobs:
       PARALLEL: -j2
       OPCACHE: "${{ matrix.opcache && '1' || '0' }}"
       ASAN: "${{ matrix.asan && '1' || '0' }}"
+      CLANG_TOOLSET: "${{ matrix.clang && '1' || '0' }}"
     steps:
       - name: git config
         run: git config --global core.autocrlf false && git config --global core.eol lf