Skip to content

Comments

Fix crash for diagnostics around source with embedded nulls#8164

Open
damyanp wants to merge 2 commits intomicrosoft:mainfrom
damyanp:embedded-nulls
Open

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

Conversation

@damyanp
Copy link
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

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.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: New

Development

Successfully merging this pull request may close these issues.

2 participants