[clang-tools-extra] [clang-doc] Fix assertions error in Serialize.cpp (PR #141990)
Paul Kirth via cfe-commits
cfe-commits at lists.llvm.org
Thu May 29 10:12:02 PDT 2025
https://github.com/ilovepi created https://github.com/llvm/llvm-project/pull/141990
We can only print and use a default arg, if it is instantiated.
I was unable to reduce the test case for this to something of reasonable
size, but this is easily hit by running clang-doc to generate clang's
documentation. For now, we can fix the assertion quickly to unbreak
users, and add the proper test once it is small enough.
>From ac37e01318046d3af42c5aa86b0480a3e82922fe Mon Sep 17 00:00:00 2001
From: Paul Kirth <paulkirth at google.com>
Date: Thu, 29 May 2025 10:03:30 -0700
Subject: [PATCH] [clang-doc] Fix assertions error in Serialize.cpp
We can only print and use a default arg, if it is instantiated.
I was unable to reduce the test case for this to something of reasonable
size, but this is easily hit by running clang-doc to generate clang's
documentation. For now, we can fix the assertion quickly to unbreak
users, and add the proper test once it is small enough.
---
clang-tools-extra/clang-doc/Serialize.cpp | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/clang-tools-extra/clang-doc/Serialize.cpp b/clang-tools-extra/clang-doc/Serialize.cpp
index 97ea1f02a6178..e9212e4de7644 100644
--- a/clang-tools-extra/clang-doc/Serialize.cpp
+++ b/clang-tools-extra/clang-doc/Serialize.cpp
@@ -113,9 +113,8 @@ getFunctionPrototype(const FunctionDecl *FuncDecl) {
Stream << " " << ParamDecl->getNameAsString();
// Print default argument if it exists
- if (ParamDecl->hasDefaultArg()) {
- const Expr *DefaultArg = ParamDecl->getDefaultArg();
- if (DefaultArg) {
+ if (ParamDecl->hasDefaultArg() && !ParamDecl->hasUninstantiatedDefaultArg()) {
+ if(const Expr *DefaultArg = ParamDecl->getDefaultArg()) {
Stream << " = ";
DefaultArg->printPretty(Stream, nullptr, Ctx.getPrintingPolicy());
}
More information about the cfe-commits
mailing list