Disable new warnings introduced with clang 18 - #99811

Merged
janvorli merged 1 commit into
dotnet:mainfrom
omajid:clang-18
Mar 15, 2024
Merged

Disable new warnings introduced with clang 18#99811
janvorli merged 1 commit into
dotnet:mainfrom
omajid:clang-18

Conversation

@omajid

Copy link
Copy Markdown
Member

clang 18 introduces -Wswitch-default, which requires that every switch must have a default branch. We can add missing default in switches, but the other option -Wcovered-switch-default complains if all the cases in a switch are exhaustive and default doesn't do anything. So disable one of these mutually exclusive warnings.

We will also need to merge in the changes from
dotnet/arcade#14572 to actually try and use clang-18/clang++-18.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Mar 15, 2024
@dotnet-policy-servicedotnet-policy-serviceBot added the community-contribution Indicates that the PR has been added by a community member label Mar 15, 2024
clang 18 introduces `-Wswitch-default`, which requires that every switch
must have a `default` branch. We can add missing `default` in switches,
but the other option `-Wcovered-switch-default` complains if all the
cases in a switch are exhaustive and `default` doesn't do anything. So
disable one of these mutually exclusive warnings.
We will also need to merge in the changes from
dotnet/arcade#14572 to actually try and use
clang-18/clang++-18.
@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

How feasible it is to fix the warning instead of suppressing it? We will soon have CI legs with clang18 (dotnet/dotnet-buildtools-prereqs-docker#976).

@omajid

omajid commented Mar 15, 2024

Copy link
Copy Markdown
MemberAuthor

Like I wrote in the commit message, it's an issue because 2 conflicting warnings are now both enabled with clang 18. It's not possible to modify the code to make both warnings go away. See my issue that I reported to clang folks: llvm/llvm-project#85233

We can pick which warning to disable (or turn off -Weverything). I picked disabling switch-default because it seems less useful of the two.

@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

Ah, I missed that. Good investigation and I agree with your choice. 👍

@am11
am11 requested a review from janvorliMarch 15, 2024 15:29
@MichalPetryka

Copy link
Copy Markdown
Contributor

I picked disabling switch-default because it seems less useful of the two.

Wouldn't it make more sense to keep that one and add default with unreachable asserts to enum switches?

@omajid

Copy link
Copy Markdown
MemberAuthor

Wouldn't it make more sense to keep that one and add default with unreachable asserts to enum switches?

I am leaning towards no

Suppose we have an enum + a switch that goes over it. Without using default, we can be sure that our switch is exhaustive and get compile-time detection if we miss a case. If we add default everywhere (what -Wswitch-default requires) + -Wno-covered-switch-default, we can add new enum entries and forget to handle it in code. That turns a compile-time check into a runtime assert, delaying the time until the someone working on a piece of code gets feedback on an issue.

That said, I don't own any code in this repo, so I am happy to do what the maintainers tell me they want 😄

@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

covered-switch-default is an old diagnostic which the code conforms to and other compilers also care for. switch-default is a new clang18 thing, and it is mutually exclusive. So that's why it is less useful.

@am11am11 added area-Infrastructure-coreclr Only use for closed issues and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Mar 15, 2024
@janvorli

Copy link
Copy Markdown
Member

I agree with @omajid here. Let's keep this change as is.

@janvorlijanvorli left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you!

@janvorli
janvorli merged commit ac1b478 into dotnet:mainMar 15, 2024
omajid added a commit to omajid/dotnet-runtime that referenced this pull request Mar 25, 2024
This is a targeted backport from a few other PRs that makes it possible
to build dotnet/runtme's 8.0 branch on Fedora 40 which includes clang
18.
- dotnet/arcade#14572
- dotnet#94782
- dotnet#99811
jkotas pushed a commit that referenced this pull request Mar 27, 2024
This is a targeted backport from a few other PRs that makes it possible
to build dotnet/runtme's 8.0 branch on Fedora 40 which includes clang
18.
- dotnet/arcade#14572
- #94782
- #99811
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Apr 15, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructure-coreclrOnly use for closed issuescommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@omajid@am11@MichalPetryka@janvorli
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Disable new warnings introduced with clang 18 - #99811

Merged
janvorli merged 1 commit into
dotnet:mainfrom
omajid:clang-18
Mar 15, 2024
Merged

Disable new warnings introduced with clang 18#99811
janvorli merged 1 commit into
dotnet:mainfrom
omajid:clang-18

Conversation

@omajid

Copy link
Copy Markdown
Member

clang 18 introduces -Wswitch-default, which requires that every switch must have a default branch. We can add missing default in switches, but the other option -Wcovered-switch-default complains if all the cases in a switch are exhaustive and default doesn't do anything. So disable one of these mutually exclusive warnings.

We will also need to merge in the changes from
dotnet/arcade#14572 to actually try and use clang-18/clang++-18.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Mar 15, 2024
@dotnet-policy-servicedotnet-policy-serviceBot added the community-contribution Indicates that the PR has been added by a community member label Mar 15, 2024
clang 18 introduces `-Wswitch-default`, which requires that every switch
must have a `default` branch. We can add missing `default` in switches,
but the other option `-Wcovered-switch-default` complains if all the
cases in a switch are exhaustive and `default` doesn't do anything. So
disable one of these mutually exclusive warnings.
We will also need to merge in the changes from
dotnet/arcade#14572 to actually try and use
clang-18/clang++-18.
@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

How feasible it is to fix the warning instead of suppressing it? We will soon have CI legs with clang18 (dotnet/dotnet-buildtools-prereqs-docker#976).

@omajid

omajid commented Mar 15, 2024

Copy link
Copy Markdown
MemberAuthor

Like I wrote in the commit message, it's an issue because 2 conflicting warnings are now both enabled with clang 18. It's not possible to modify the code to make both warnings go away. See my issue that I reported to clang folks: llvm/llvm-project#85233

We can pick which warning to disable (or turn off -Weverything). I picked disabling switch-default because it seems less useful of the two.

@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

Ah, I missed that. Good investigation and I agree with your choice. 👍

@am11
am11 requested a review from janvorliMarch 15, 2024 15:29
@MichalPetryka

Copy link
Copy Markdown
Contributor

I picked disabling switch-default because it seems less useful of the two.

Wouldn't it make more sense to keep that one and add default with unreachable asserts to enum switches?

@omajid

Copy link
Copy Markdown
MemberAuthor

Wouldn't it make more sense to keep that one and add default with unreachable asserts to enum switches?

I am leaning towards no

Suppose we have an enum + a switch that goes over it. Without using default, we can be sure that our switch is exhaustive and get compile-time detection if we miss a case. If we add default everywhere (what -Wswitch-default requires) + -Wno-covered-switch-default, we can add new enum entries and forget to handle it in code. That turns a compile-time check into a runtime assert, delaying the time until the someone working on a piece of code gets feedback on an issue.

That said, I don't own any code in this repo, so I am happy to do what the maintainers tell me they want 😄

@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

covered-switch-default is an old diagnostic which the code conforms to and other compilers also care for. switch-default is a new clang18 thing, and it is mutually exclusive. So that's why it is less useful.

@am11am11 added area-Infrastructure-coreclr Only use for closed issues and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Mar 15, 2024
@janvorli

Copy link
Copy Markdown
Member

I agree with @omajid here. Let's keep this change as is.

@janvorlijanvorli left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you!

@janvorli
janvorli merged commit ac1b478 into dotnet:mainMar 15, 2024
omajid added a commit to omajid/dotnet-runtime that referenced this pull request Mar 25, 2024
This is a targeted backport from a few other PRs that makes it possible
to build dotnet/runtme's 8.0 branch on Fedora 40 which includes clang
18.
- dotnet/arcade#14572
- dotnet#94782
- dotnet#99811
jkotas pushed a commit that referenced this pull request Mar 27, 2024
This is a targeted backport from a few other PRs that makes it possible
to build dotnet/runtme's 8.0 branch on Fedora 40 which includes clang
18.
- dotnet/arcade#14572
- #94782
- #99811
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Apr 15, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructure-coreclrOnly use for closed issuescommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@omajid@am11@MichalPetryka@janvorli
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Disable new warnings introduced with clang 18 - #99811

Merged
janvorli merged 1 commit into
dotnet:mainfrom
omajid:clang-18
Mar 15, 2024
Merged

Disable new warnings introduced with clang 18#99811
janvorli merged 1 commit into
dotnet:mainfrom
omajid:clang-18

Conversation

@omajid

Copy link
Copy Markdown
Member

clang 18 introduces -Wswitch-default, which requires that every switch must have a default branch. We can add missing default in switches, but the other option -Wcovered-switch-default complains if all the cases in a switch are exhaustive and default doesn't do anything. So disable one of these mutually exclusive warnings.

We will also need to merge in the changes from
dotnet/arcade#14572 to actually try and use clang-18/clang++-18.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Mar 15, 2024
@dotnet-policy-servicedotnet-policy-serviceBot added the community-contribution Indicates that the PR has been added by a community member label Mar 15, 2024
clang 18 introduces `-Wswitch-default`, which requires that every switch
must have a `default` branch. We can add missing `default` in switches,
but the other option `-Wcovered-switch-default` complains if all the
cases in a switch are exhaustive and `default` doesn't do anything. So
disable one of these mutually exclusive warnings.
We will also need to merge in the changes from
dotnet/arcade#14572 to actually try and use
clang-18/clang++-18.
@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

How feasible it is to fix the warning instead of suppressing it? We will soon have CI legs with clang18 (dotnet/dotnet-buildtools-prereqs-docker#976).

@omajid

omajid commented Mar 15, 2024

Copy link
Copy Markdown
MemberAuthor

Like I wrote in the commit message, it's an issue because 2 conflicting warnings are now both enabled with clang 18. It's not possible to modify the code to make both warnings go away. See my issue that I reported to clang folks: llvm/llvm-project#85233

We can pick which warning to disable (or turn off -Weverything). I picked disabling switch-default because it seems less useful of the two.

@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

Ah, I missed that. Good investigation and I agree with your choice. 👍

@am11
am11 requested a review from janvorliMarch 15, 2024 15:29
@MichalPetryka

Copy link
Copy Markdown
Contributor

I picked disabling switch-default because it seems less useful of the two.

Wouldn't it make more sense to keep that one and add default with unreachable asserts to enum switches?

@omajid

Copy link
Copy Markdown
MemberAuthor

Wouldn't it make more sense to keep that one and add default with unreachable asserts to enum switches?

I am leaning towards no

Suppose we have an enum + a switch that goes over it. Without using default, we can be sure that our switch is exhaustive and get compile-time detection if we miss a case. If we add default everywhere (what -Wswitch-default requires) + -Wno-covered-switch-default, we can add new enum entries and forget to handle it in code. That turns a compile-time check into a runtime assert, delaying the time until the someone working on a piece of code gets feedback on an issue.

That said, I don't own any code in this repo, so I am happy to do what the maintainers tell me they want 😄

@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

covered-switch-default is an old diagnostic which the code conforms to and other compilers also care for. switch-default is a new clang18 thing, and it is mutually exclusive. So that's why it is less useful.

@am11am11 added area-Infrastructure-coreclr Only use for closed issues and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Mar 15, 2024
@janvorli

Copy link
Copy Markdown
Member

I agree with @omajid here. Let's keep this change as is.

@janvorlijanvorli left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you!

@janvorli
janvorli merged commit ac1b478 into dotnet:mainMar 15, 2024
omajid added a commit to omajid/dotnet-runtime that referenced this pull request Mar 25, 2024
This is a targeted backport from a few other PRs that makes it possible
to build dotnet/runtme's 8.0 branch on Fedora 40 which includes clang
18.
- dotnet/arcade#14572
- dotnet#94782
- dotnet#99811
jkotas pushed a commit that referenced this pull request Mar 27, 2024
This is a targeted backport from a few other PRs that makes it possible
to build dotnet/runtme's 8.0 branch on Fedora 40 which includes clang
18.
- dotnet/arcade#14572
- #94782
- #99811
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Apr 15, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructure-coreclrOnly use for closed issuescommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@omajid@am11@MichalPetryka@janvorli
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Disable new warnings introduced with clang 18 - #99811

Merged
janvorli merged 1 commit into
dotnet:mainfrom
omajid:clang-18
Mar 15, 2024
Merged

Disable new warnings introduced with clang 18#99811
janvorli merged 1 commit into
dotnet:mainfrom
omajid:clang-18

Conversation

@omajid

Copy link
Copy Markdown
Member

clang 18 introduces -Wswitch-default, which requires that every switch must have a default branch. We can add missing default in switches, but the other option -Wcovered-switch-default complains if all the cases in a switch are exhaustive and default doesn't do anything. So disable one of these mutually exclusive warnings.

We will also need to merge in the changes from
dotnet/arcade#14572 to actually try and use clang-18/clang++-18.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Mar 15, 2024
@dotnet-policy-servicedotnet-policy-serviceBot added the community-contribution Indicates that the PR has been added by a community member label Mar 15, 2024
clang 18 introduces `-Wswitch-default`, which requires that every switch
must have a `default` branch. We can add missing `default` in switches,
but the other option `-Wcovered-switch-default` complains if all the
cases in a switch are exhaustive and `default` doesn't do anything. So
disable one of these mutually exclusive warnings.
We will also need to merge in the changes from
dotnet/arcade#14572 to actually try and use
clang-18/clang++-18.
@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

How feasible it is to fix the warning instead of suppressing it? We will soon have CI legs with clang18 (dotnet/dotnet-buildtools-prereqs-docker#976).

@omajid

omajid commented Mar 15, 2024

Copy link
Copy Markdown
MemberAuthor

Like I wrote in the commit message, it's an issue because 2 conflicting warnings are now both enabled with clang 18. It's not possible to modify the code to make both warnings go away. See my issue that I reported to clang folks: llvm/llvm-project#85233

We can pick which warning to disable (or turn off -Weverything). I picked disabling switch-default because it seems less useful of the two.

@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

Ah, I missed that. Good investigation and I agree with your choice. 👍

@am11
am11 requested a review from janvorliMarch 15, 2024 15:29
@MichalPetryka

Copy link
Copy Markdown
Contributor

I picked disabling switch-default because it seems less useful of the two.

Wouldn't it make more sense to keep that one and add default with unreachable asserts to enum switches?

@omajid

Copy link
Copy Markdown
MemberAuthor

Wouldn't it make more sense to keep that one and add default with unreachable asserts to enum switches?

I am leaning towards no

Suppose we have an enum + a switch that goes over it. Without using default, we can be sure that our switch is exhaustive and get compile-time detection if we miss a case. If we add default everywhere (what -Wswitch-default requires) + -Wno-covered-switch-default, we can add new enum entries and forget to handle it in code. That turns a compile-time check into a runtime assert, delaying the time until the someone working on a piece of code gets feedback on an issue.

That said, I don't own any code in this repo, so I am happy to do what the maintainers tell me they want 😄

@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

covered-switch-default is an old diagnostic which the code conforms to and other compilers also care for. switch-default is a new clang18 thing, and it is mutually exclusive. So that's why it is less useful.

@am11am11 added area-Infrastructure-coreclr Only use for closed issues and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Mar 15, 2024
@janvorli

Copy link
Copy Markdown
Member

I agree with @omajid here. Let's keep this change as is.

@janvorlijanvorli left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you!

@janvorli
janvorli merged commit ac1b478 into dotnet:mainMar 15, 2024
omajid added a commit to omajid/dotnet-runtime that referenced this pull request Mar 25, 2024
This is a targeted backport from a few other PRs that makes it possible
to build dotnet/runtme's 8.0 branch on Fedora 40 which includes clang
18.
- dotnet/arcade#14572
- dotnet#94782
- dotnet#99811
jkotas pushed a commit that referenced this pull request Mar 27, 2024
This is a targeted backport from a few other PRs that makes it possible
to build dotnet/runtme's 8.0 branch on Fedora 40 which includes clang
18.
- dotnet/arcade#14572
- #94782
- #99811
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Apr 15, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructure-coreclrOnly use for closed issuescommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@omajid@am11@MichalPetryka@janvorli
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Disable new warnings introduced with clang 18 - #99811

Merged
janvorli merged 1 commit into
dotnet:mainfrom
omajid:clang-18
Mar 15, 2024
Merged

Disable new warnings introduced with clang 18#99811
janvorli merged 1 commit into
dotnet:mainfrom
omajid:clang-18

Conversation

@omajid

Copy link
Copy Markdown
Member

clang 18 introduces -Wswitch-default, which requires that every switch must have a default branch. We can add missing default in switches, but the other option -Wcovered-switch-default complains if all the cases in a switch are exhaustive and default doesn't do anything. So disable one of these mutually exclusive warnings.

We will also need to merge in the changes from
dotnet/arcade#14572 to actually try and use clang-18/clang++-18.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Mar 15, 2024
@dotnet-policy-servicedotnet-policy-serviceBot added the community-contribution Indicates that the PR has been added by a community member label Mar 15, 2024
clang 18 introduces `-Wswitch-default`, which requires that every switch
must have a `default` branch. We can add missing `default` in switches,
but the other option `-Wcovered-switch-default` complains if all the
cases in a switch are exhaustive and `default` doesn't do anything. So
disable one of these mutually exclusive warnings.
We will also need to merge in the changes from
dotnet/arcade#14572 to actually try and use
clang-18/clang++-18.
@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

How feasible it is to fix the warning instead of suppressing it? We will soon have CI legs with clang18 (dotnet/dotnet-buildtools-prereqs-docker#976).

@omajid

omajid commented Mar 15, 2024

Copy link
Copy Markdown
MemberAuthor

Like I wrote in the commit message, it's an issue because 2 conflicting warnings are now both enabled with clang 18. It's not possible to modify the code to make both warnings go away. See my issue that I reported to clang folks: llvm/llvm-project#85233

We can pick which warning to disable (or turn off -Weverything). I picked disabling switch-default because it seems less useful of the two.

@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

Ah, I missed that. Good investigation and I agree with your choice. 👍

@am11
am11 requested a review from janvorliMarch 15, 2024 15:29
@MichalPetryka

Copy link
Copy Markdown
Contributor

I picked disabling switch-default because it seems less useful of the two.

Wouldn't it make more sense to keep that one and add default with unreachable asserts to enum switches?

@omajid

Copy link
Copy Markdown
MemberAuthor

Wouldn't it make more sense to keep that one and add default with unreachable asserts to enum switches?

I am leaning towards no

Suppose we have an enum + a switch that goes over it. Without using default, we can be sure that our switch is exhaustive and get compile-time detection if we miss a case. If we add default everywhere (what -Wswitch-default requires) + -Wno-covered-switch-default, we can add new enum entries and forget to handle it in code. That turns a compile-time check into a runtime assert, delaying the time until the someone working on a piece of code gets feedback on an issue.

That said, I don't own any code in this repo, so I am happy to do what the maintainers tell me they want 😄

@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

covered-switch-default is an old diagnostic which the code conforms to and other compilers also care for. switch-default is a new clang18 thing, and it is mutually exclusive. So that's why it is less useful.

@am11am11 added area-Infrastructure-coreclr Only use for closed issues and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Mar 15, 2024
@janvorli

Copy link
Copy Markdown
Member

I agree with @omajid here. Let's keep this change as is.

@janvorlijanvorli left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you!

@janvorli
janvorli merged commit ac1b478 into dotnet:mainMar 15, 2024
omajid added a commit to omajid/dotnet-runtime that referenced this pull request Mar 25, 2024
This is a targeted backport from a few other PRs that makes it possible
to build dotnet/runtme's 8.0 branch on Fedora 40 which includes clang
18.
- dotnet/arcade#14572
- dotnet#94782
- dotnet#99811
jkotas pushed a commit that referenced this pull request Mar 27, 2024
This is a targeted backport from a few other PRs that makes it possible
to build dotnet/runtme's 8.0 branch on Fedora 40 which includes clang
18.
- dotnet/arcade#14572
- #94782
- #99811
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Apr 15, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructure-coreclrOnly use for closed issuescommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@omajid@am11@MichalPetryka@janvorli
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Disable new warnings introduced with clang 18 - #99811

Merged
janvorli merged 1 commit into
dotnet:mainfrom
omajid:clang-18
Mar 15, 2024
Merged

Disable new warnings introduced with clang 18#99811
janvorli merged 1 commit into
dotnet:mainfrom
omajid:clang-18

Conversation

@omajid

Copy link
Copy Markdown
Member

clang 18 introduces -Wswitch-default, which requires that every switch must have a default branch. We can add missing default in switches, but the other option -Wcovered-switch-default complains if all the cases in a switch are exhaustive and default doesn't do anything. So disable one of these mutually exclusive warnings.

We will also need to merge in the changes from
dotnet/arcade#14572 to actually try and use clang-18/clang++-18.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Mar 15, 2024
@dotnet-policy-servicedotnet-policy-serviceBot added the community-contribution Indicates that the PR has been added by a community member label Mar 15, 2024
clang 18 introduces `-Wswitch-default`, which requires that every switch
must have a `default` branch. We can add missing `default` in switches,
but the other option `-Wcovered-switch-default` complains if all the
cases in a switch are exhaustive and `default` doesn't do anything. So
disable one of these mutually exclusive warnings.
We will also need to merge in the changes from
dotnet/arcade#14572 to actually try and use
clang-18/clang++-18.
@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

How feasible it is to fix the warning instead of suppressing it? We will soon have CI legs with clang18 (dotnet/dotnet-buildtools-prereqs-docker#976).

@omajid

omajid commented Mar 15, 2024

Copy link
Copy Markdown
MemberAuthor

Like I wrote in the commit message, it's an issue because 2 conflicting warnings are now both enabled with clang 18. It's not possible to modify the code to make both warnings go away. See my issue that I reported to clang folks: llvm/llvm-project#85233

We can pick which warning to disable (or turn off -Weverything). I picked disabling switch-default because it seems less useful of the two.

@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

Ah, I missed that. Good investigation and I agree with your choice. 👍

@am11
am11 requested a review from janvorliMarch 15, 2024 15:29
@MichalPetryka

Copy link
Copy Markdown
Contributor

I picked disabling switch-default because it seems less useful of the two.

Wouldn't it make more sense to keep that one and add default with unreachable asserts to enum switches?

@omajid

Copy link
Copy Markdown
MemberAuthor

Wouldn't it make more sense to keep that one and add default with unreachable asserts to enum switches?

I am leaning towards no

Suppose we have an enum + a switch that goes over it. Without using default, we can be sure that our switch is exhaustive and get compile-time detection if we miss a case. If we add default everywhere (what -Wswitch-default requires) + -Wno-covered-switch-default, we can add new enum entries and forget to handle it in code. That turns a compile-time check into a runtime assert, delaying the time until the someone working on a piece of code gets feedback on an issue.

That said, I don't own any code in this repo, so I am happy to do what the maintainers tell me they want 😄

@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

covered-switch-default is an old diagnostic which the code conforms to and other compilers also care for. switch-default is a new clang18 thing, and it is mutually exclusive. So that's why it is less useful.

@am11am11 added area-Infrastructure-coreclr Only use for closed issues and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Mar 15, 2024
@janvorli

Copy link
Copy Markdown
Member

I agree with @omajid here. Let's keep this change as is.

@janvorlijanvorli left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you!

@janvorli
janvorli merged commit ac1b478 into dotnet:mainMar 15, 2024
omajid added a commit to omajid/dotnet-runtime that referenced this pull request Mar 25, 2024
This is a targeted backport from a few other PRs that makes it possible
to build dotnet/runtme's 8.0 branch on Fedora 40 which includes clang
18.
- dotnet/arcade#14572
- dotnet#94782
- dotnet#99811
jkotas pushed a commit that referenced this pull request Mar 27, 2024
This is a targeted backport from a few other PRs that makes it possible
to build dotnet/runtme's 8.0 branch on Fedora 40 which includes clang
18.
- dotnet/arcade#14572
- #94782
- #99811
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Apr 15, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructure-coreclrOnly use for closed issuescommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@omajid@am11@MichalPetryka@janvorli
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Disable new warnings introduced with clang 18 - #99811

Merged
janvorli merged 1 commit into
dotnet:mainfrom
omajid:clang-18
Mar 15, 2024
Merged

Disable new warnings introduced with clang 18#99811
janvorli merged 1 commit into
dotnet:mainfrom
omajid:clang-18

Conversation

@omajid

Copy link
Copy Markdown
Member

clang 18 introduces -Wswitch-default, which requires that every switch must have a default branch. We can add missing default in switches, but the other option -Wcovered-switch-default complains if all the cases in a switch are exhaustive and default doesn't do anything. So disable one of these mutually exclusive warnings.

We will also need to merge in the changes from
dotnet/arcade#14572 to actually try and use clang-18/clang++-18.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Mar 15, 2024
@dotnet-policy-servicedotnet-policy-serviceBot added the community-contribution Indicates that the PR has been added by a community member label Mar 15, 2024
clang 18 introduces `-Wswitch-default`, which requires that every switch
must have a `default` branch. We can add missing `default` in switches,
but the other option `-Wcovered-switch-default` complains if all the
cases in a switch are exhaustive and `default` doesn't do anything. So
disable one of these mutually exclusive warnings.
We will also need to merge in the changes from
dotnet/arcade#14572 to actually try and use
clang-18/clang++-18.
@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

How feasible it is to fix the warning instead of suppressing it? We will soon have CI legs with clang18 (dotnet/dotnet-buildtools-prereqs-docker#976).

@omajid

omajid commented Mar 15, 2024

Copy link
Copy Markdown
MemberAuthor

Like I wrote in the commit message, it's an issue because 2 conflicting warnings are now both enabled with clang 18. It's not possible to modify the code to make both warnings go away. See my issue that I reported to clang folks: llvm/llvm-project#85233

We can pick which warning to disable (or turn off -Weverything). I picked disabling switch-default because it seems less useful of the two.

@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

Ah, I missed that. Good investigation and I agree with your choice. 👍

@am11
am11 requested a review from janvorliMarch 15, 2024 15:29
@MichalPetryka

Copy link
Copy Markdown
Contributor

I picked disabling switch-default because it seems less useful of the two.

Wouldn't it make more sense to keep that one and add default with unreachable asserts to enum switches?

@omajid

Copy link
Copy Markdown
MemberAuthor

Wouldn't it make more sense to keep that one and add default with unreachable asserts to enum switches?

I am leaning towards no

Suppose we have an enum + a switch that goes over it. Without using default, we can be sure that our switch is exhaustive and get compile-time detection if we miss a case. If we add default everywhere (what -Wswitch-default requires) + -Wno-covered-switch-default, we can add new enum entries and forget to handle it in code. That turns a compile-time check into a runtime assert, delaying the time until the someone working on a piece of code gets feedback on an issue.

That said, I don't own any code in this repo, so I am happy to do what the maintainers tell me they want 😄

@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

covered-switch-default is an old diagnostic which the code conforms to and other compilers also care for. switch-default is a new clang18 thing, and it is mutually exclusive. So that's why it is less useful.

@am11am11 added area-Infrastructure-coreclr Only use for closed issues and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Mar 15, 2024
@janvorli

Copy link
Copy Markdown
Member

I agree with @omajid here. Let's keep this change as is.

@janvorlijanvorli left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you!

@janvorli
janvorli merged commit ac1b478 into dotnet:mainMar 15, 2024
omajid added a commit to omajid/dotnet-runtime that referenced this pull request Mar 25, 2024
This is a targeted backport from a few other PRs that makes it possible
to build dotnet/runtme's 8.0 branch on Fedora 40 which includes clang
18.
- dotnet/arcade#14572
- dotnet#94782
- dotnet#99811
jkotas pushed a commit that referenced this pull request Mar 27, 2024
This is a targeted backport from a few other PRs that makes it possible
to build dotnet/runtme's 8.0 branch on Fedora 40 which includes clang
18.
- dotnet/arcade#14572
- #94782
- #99811
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Apr 15, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructure-coreclrOnly use for closed issuescommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@omajid@am11@MichalPetryka@janvorli
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Disable new warnings introduced with clang 18 - #99811

Merged
janvorli merged 1 commit into
dotnet:mainfrom
omajid:clang-18
Mar 15, 2024
Merged

Disable new warnings introduced with clang 18#99811
janvorli merged 1 commit into
dotnet:mainfrom
omajid:clang-18

Conversation

@omajid

Copy link
Copy Markdown
Member

clang 18 introduces -Wswitch-default, which requires that every switch must have a default branch. We can add missing default in switches, but the other option -Wcovered-switch-default complains if all the cases in a switch are exhaustive and default doesn't do anything. So disable one of these mutually exclusive warnings.

We will also need to merge in the changes from
dotnet/arcade#14572 to actually try and use clang-18/clang++-18.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Mar 15, 2024
@dotnet-policy-servicedotnet-policy-serviceBot added the community-contribution Indicates that the PR has been added by a community member label Mar 15, 2024
clang 18 introduces `-Wswitch-default`, which requires that every switch
must have a `default` branch. We can add missing `default` in switches,
but the other option `-Wcovered-switch-default` complains if all the
cases in a switch are exhaustive and `default` doesn't do anything. So
disable one of these mutually exclusive warnings.
We will also need to merge in the changes from
dotnet/arcade#14572 to actually try and use
clang-18/clang++-18.
@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

How feasible it is to fix the warning instead of suppressing it? We will soon have CI legs with clang18 (dotnet/dotnet-buildtools-prereqs-docker#976).

@omajid

omajid commented Mar 15, 2024

Copy link
Copy Markdown
MemberAuthor

Like I wrote in the commit message, it's an issue because 2 conflicting warnings are now both enabled with clang 18. It's not possible to modify the code to make both warnings go away. See my issue that I reported to clang folks: llvm/llvm-project#85233

We can pick which warning to disable (or turn off -Weverything). I picked disabling switch-default because it seems less useful of the two.

@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

Ah, I missed that. Good investigation and I agree with your choice. 👍

@am11
am11 requested a review from janvorliMarch 15, 2024 15:29
@MichalPetryka

Copy link
Copy Markdown
Contributor

I picked disabling switch-default because it seems less useful of the two.

Wouldn't it make more sense to keep that one and add default with unreachable asserts to enum switches?

@omajid

Copy link
Copy Markdown
MemberAuthor

Wouldn't it make more sense to keep that one and add default with unreachable asserts to enum switches?

I am leaning towards no

Suppose we have an enum + a switch that goes over it. Without using default, we can be sure that our switch is exhaustive and get compile-time detection if we miss a case. If we add default everywhere (what -Wswitch-default requires) + -Wno-covered-switch-default, we can add new enum entries and forget to handle it in code. That turns a compile-time check into a runtime assert, delaying the time until the someone working on a piece of code gets feedback on an issue.

That said, I don't own any code in this repo, so I am happy to do what the maintainers tell me they want 😄

@am11

am11 commented Mar 15, 2024

Copy link
Copy Markdown
Member

covered-switch-default is an old diagnostic which the code conforms to and other compilers also care for. switch-default is a new clang18 thing, and it is mutually exclusive. So that's why it is less useful.

@am11am11 added area-Infrastructure-coreclr Only use for closed issues and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Mar 15, 2024
@janvorli

Copy link
Copy Markdown
Member

I agree with @omajid here. Let's keep this change as is.

@janvorlijanvorli left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you!

@janvorli
janvorli merged commit ac1b478 into dotnet:mainMar 15, 2024
omajid added a commit to omajid/dotnet-runtime that referenced this pull request Mar 25, 2024
This is a targeted backport from a few other PRs that makes it possible
to build dotnet/runtme's 8.0 branch on Fedora 40 which includes clang
18.
- dotnet/arcade#14572
- dotnet#94782
- dotnet#99811
jkotas pushed a commit that referenced this pull request Mar 27, 2024
This is a targeted backport from a few other PRs that makes it possible
to build dotnet/runtme's 8.0 branch on Fedora 40 which includes clang
18.
- dotnet/arcade#14572
- #94782
- #99811
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Apr 15, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructure-coreclrOnly use for closed issuescommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@omajid@am11@MichalPetryka@janvorli