Skip to content

Fix crash for diagnostics around source with embedded nulls#8164

Merged
damyanp merged 2 commits intomicrosoft:mainfrom
damyanp:embedded-nulls
Mar 10, 2026
Merged

Fix crash for diagnostics around source with embedded nulls#8164
damyanp merged 2 commits intomicrosoft:mainfrom
damyanp:embedded-nulls

Conversation

@damyanp
Copy link
Copy Markdown
Member

@damyanp damyanp commented Feb 17, 2026

Previously if the source contained embedded nulls and a diagnostic range included that this would result in an assert firing (and then a crash in builds without asserts).

This change makes it quietly return in this case, and adds a regression test for this situation.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Fixes a crash in DXC’s diagnostic range highlighting when the input source contains embedded null bytes, by making the highlighter bail out instead of asserting/crashing, and adds a regression test to cover the scenario.

Changes:

  • Update highlightRange() to return early when trimming whitespace causes the start/end columns to cross (e.g., due to embedded null bytes).
  • Add a new DXC lit test that feeds an HLSL source containing an embedded \x00 and verifies an expected diagnostic instead of a crash.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
tools/clang/lib/Frontend/TextDiagnostic.cpp Avoids crashing/asserting when a token highlight range becomes invalid after whitespace trimming.
tools/clang/test/DXC/highlight-range-null-byte.test Regression test ensuring embedded null bytes don’t crash diagnostics/highlighting.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread tools/clang/test/DXC/highlight-range-null-byte.test Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@damyanp damyanp merged commit 495e369 into microsoft:main Mar 10, 2026
12 checks passed
@github-project-automation github-project-automation Bot moved this from New to Done in HLSL Roadmap Mar 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants