') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); [release/10.0] JIT: Add missing containment check for indirect calls by github-actions[bot] · Pull Request #119812 · dotnet/runtime · GitHub
Skip to content

[release/10.0] JIT: Add missing containment check for indirect calls - #119812

Merged
agocke merged 1 commit into
release/10.0from
backport/pr-119806-to-release/10.0
Sep 22, 2025
Merged

[release/10.0] JIT: Add missing containment check for indirect calls#119812
agocke merged 1 commit into
release/10.0from
backport/pr-119806-to-release/10.0

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Sep 17, 2025

Copy link
Copy Markdown
Contributor

Backport of #119806 to release/10.0

/cc @jakobbotsch

Customer Impact

  • Customer reported
  • Found internally

The JIT is missing a safety check for whether indirect calls can be optimized to perform the indirection as part of the call instruction on x64.

Regression

  • Yes
  • No

New IR produced by runtime async exposes calls that causes the backend to trip over this.

Testing

Verified manually on a specific function in our own libraries tests that hit the case. Test case not introduced since existing tests already cover it when runtime async is enabled.

Risk

Low. The safety check comes with no diffs over our SPMI collections and should in the worst case just result in a load performed slightly earlier.

@jakobbotsch
jakobbotsch requested a review from a teamSeptember 17, 2025 15:53
kg
kg approved these changes Sep 17, 2025
@jakobbotsch

Copy link
Copy Markdown
Member

/ba-g All issues are known, but build-analysis is not switching to green

@JulieLeeMSFTJulieLeeMSFT added the Servicing-approved Approved for servicing release label Sep 19, 2025
@JulieLeeMSFTJulieLeeMSFT added this to the 10.0.0 milestone Sep 19, 2025
@JulieLeeMSFTJulieLeeMSFT added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Sep 19, 2025
@JulieLeeMSFT

Copy link
Copy Markdown
Member

/ba-g All issues are known, but build-analysis is not switching to green

Build analysis doesn’t turn green on release branch.

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

@JulieLeeMSFT

Copy link
Copy Markdown
Member

CC @jeffschwMSFT.

@agocke
agocke merged commit 734fa7b into release/10.0Sep 22, 2025
99 of 103 checks passed
@agocke
agocke deleted the backport/pr-119806-to-release/10.0 branch September 22, 2025 23:01
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Oct 23, 2025
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@jakobbotsch@JulieLeeMSFT@kg@agocke