[clang] Fix clang crash when printing highlighted code in diagnostic (after #66514) (PR #80442)

via cfe-commits cfe-commits at lists.llvm.org
Fri Feb 2 07:57:43 PST 2024


================
@@ -1349,7 +1349,7 @@ void TextDiagnostic::emitSnippetAndCaret(
   // Prepare source highlighting information for the lines we're about to
   // emit, starting from the first line.
   std::unique_ptr<SmallVector<StyleRange>[]> SourceStyles =
-      highlightLines(BufStart, Lines.first, Lines.second, PP, LangOpts,
+      highlightLines(BufData, Lines.first, Lines.second, PP, LangOpts,
----------------
eaeltsin wrote:

The original crash actually happened on the contents of `<scratch space>`, forgot to mention that.

Can it be that scratch space terminates with those `\0`?

I also see involved macros of the form
```
#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
```


https://github.com/llvm/llvm-project/pull/80442


More information about the cfe-commits mailing list