[llvm-branch-commits] [llvm] [mlir] [Support][mlir] Highlight the whole directive in verifier errors (PR #233309)
Alexander Richardson via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Oct 28 21:53:04 PDT 2026
https://github.com/arichardson updated https://github.com/llvm/llvm-project/pull/233309
>From 3fd45fe544b06e79dd46e382747b5318ef6f8c7f Mon Sep 17 00:00:00 2001
From: Alex Richardson <alexrichardson at google.com>
Date: Wed, 28 Oct 2026 11:12:57 -0700
Subject: [PATCH] [nspr] initial commit
---
llvm/lib/Support/SourceMgrDiagnosticVerifier.cpp | 4 ++--
llvm/test/tools/llvm-mc/verify/highlight.s | 5 ++---
mlir/docs/Diagnostics.md | 2 +-
3 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/llvm/lib/Support/SourceMgrDiagnosticVerifier.cpp b/llvm/lib/Support/SourceMgrDiagnosticVerifier.cpp
index adac7ef796425..6de3bfff7347f 100644
--- a/llvm/lib/Support/SourceMgrDiagnosticVerifier.cpp
+++ b/llvm/lib/Support/SourceMgrDiagnosticVerifier.cpp
@@ -31,8 +31,8 @@ static StringRef getDiagKindStr(SourceMgr::DiagKind kind) {
bool SourceMgrDiagnosticVerifier::ExpectedDiag::emitError(
raw_ostream &os, SourceMgr &mgr, const Twine &msg) const {
if (fileLoc.isValid()) {
- SMRange range(fileLoc, SMLoc::getFromPointer(fileLoc.getPointer() +
- substring.size()));
+ // Highlight the whole directive, up to and including the closing '}}'.
+ SMRange range(fileLoc, SMLoc::getFromPointer(substring.end() + 2));
mgr.PrintMessage(os, fileLoc, SourceMgr::DK_Error, msg, range);
} else {
mgr.PrintMessage(os, fileLoc, SourceMgr::DK_Error, msg);
diff --git a/llvm/test/tools/llvm-mc/verify/highlight.s b/llvm/test/tools/llvm-mc/verify/highlight.s
index 69b8784925a76..f7663ad8f23bb 100644
--- a/llvm/test/tools/llvm-mc/verify/highlight.s
+++ b/llvm/test/tools/llvm-mc/verify/highlight.s
@@ -1,14 +1,13 @@
-## Verifier errors highlight the directive.
+## Verifier errors highlight the whole directive, up to and including '}}'.
# REQUIRES: x86-registered-target
# RUN: rm -rf %t && split-file %s %t && cd %t
# RUN: not llvm-mc --triple=x86_64 --verify input.s 2>&1 \
# RUN: | FileCheck %s --strict-whitespace
-## FIXME: The highlight ends in the middle of the directive.
# CHECK: input.s:1:7: error: expected error "never produced" was not produced
# CHECK-NEXT: {{^}}nop # expected-error {{[{][{]}}never produced{{[}][}]}}{{$}}
-# CHECK-NEXT: {{^}} ^~~~~~~~~~~~~~{{$}}
+# CHECK-NEXT: {{^}} ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{{$}}
#--- input.s
nop # expected-error {{never produced}}
diff --git a/mlir/docs/Diagnostics.md b/mlir/docs/Diagnostics.md
index d8a399985f4f0..e14bc98a3f862 100644
--- a/mlir/docs/Diagnostics.md
+++ b/mlir/docs/Diagnostics.md
@@ -372,7 +372,7 @@ func.func @foo() -> (index, ind) {
/tmp/test.mlir:15:4: error: expected remark "expected some remark" was not produced
// expected-remark {{expected some remark}}
- ^~~~~~~~~~~~~~~~~~~~~~~~~~
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
Similarly to the [SourceMgr Diagnostic Handler](#sourcemgr-diagnostic-handler),
More information about the llvm-branch-commits
mailing list