[clang-tools-extra] [clang-doc] Don't serialize non-existant locations in HTML (PR #174887)

Erick Velez via cfe-commits cfe-commits at lists.llvm.org
Thu Jan 8 17:04:01 PST 2026


https://github.com/evelez7 updated https://github.com/llvm/llvm-project/pull/174887

>From be256e47ff52a24fe4a2c63a210d1aa1bbdd7ca4 Mon Sep 17 00:00:00 2001
From: Erick Velez <erickvelez7 at gmail.com>
Date: Wed, 7 Jan 2026 15:36:21 -0800
Subject: [PATCH] [clang-doc] Don't serialize non-existant locations in HTML

The function template didn't check to see if a `Location` existed before
emitting the definition location line.
---
 clang-tools-extra/clang-doc/assets/function-template.mustache | 4 +++-
 clang-tools-extra/test/clang-doc/json/class.cpp               | 1 -
 clang-tools-extra/test/clang-doc/templates.cpp                | 2 --
 3 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/clang-tools-extra/clang-doc/assets/function-template.mustache b/clang-tools-extra/clang-doc/assets/function-template.mustache
index 1e81f34196137..354e26b7b05b0 100644
--- a/clang-tools-extra/clang-doc/assets/function-template.mustache
+++ b/clang-tools-extra/clang-doc/assets/function-template.mustache
@@ -17,5 +17,7 @@
             {{>Comments}}
         </div>
         {{/Description}}
-        <p>Defined at line {{Location.LineNumber}} of file {{Location.Filename}}</p>
+        {{#Location}}
+        <p>Defined at line {{LineNumber}} of file {{Filename}}</p>
+        {{/Location}}
 </div>
diff --git a/clang-tools-extra/test/clang-doc/json/class.cpp b/clang-tools-extra/test/clang-doc/json/class.cpp
index 5c63aa5ec45ef..c4f0b2166a3f8 100644
--- a/clang-tools-extra/test/clang-doc/json/class.cpp
+++ b/clang-tools-extra/test/clang-doc/json/class.cpp
@@ -335,7 +335,6 @@ struct MyClass {
 // HTML-NEXT:     <div>
 // HTML-NEXT:         <div id="{{([0-9A-F]{40})}}" class="delimiter-container">
 // HTML-NEXT:                 <pre><code class="language-cpp code-clang-doc">int protectedMethod ()</code></pre>
-// HTML-NEXT:                 <p>Defined at line  of file </p>
 // HTML-NEXT:         </div>
 // HTML-NEXT:     </div>
 // HTML-NEXT: </section>
diff --git a/clang-tools-extra/test/clang-doc/templates.cpp b/clang-tools-extra/test/clang-doc/templates.cpp
index c9f1370a19e6e..27fff6ed5a09d 100644
--- a/clang-tools-extra/test/clang-doc/templates.cpp
+++ b/clang-tools-extra/test/clang-doc/templates.cpp
@@ -79,8 +79,6 @@ void ParamPackFunction(T... args);
 
 // HTML:        <pre><code class="language-cpp code-clang-doc">template <class... T></code></pre>
 // HTML-NEXT:      <pre><code class="language-cpp code-clang-doc">void ParamPackFunction (T... args)</code></pre>
-// COM:            FIXME: Omit defined line if not defined, or emit declaration line.
-// HTML-NEXT:      <p>Defined at line of file </p>
 // HTML-NEXT:  </div>
 
 template <typename T, int U = 1>



More information about the cfe-commits mailing list