[Lldb-commits] [clang] [lldb] [clang] remove IsDefaulted bit from TemplateArgument (PR #155120)
Michael Buch via lldb-commits
lldb-commits at lists.llvm.org
Mon Sep 8 03:38:25 PDT 2025
================
@@ -2125,9 +2125,9 @@ bool DWARFASTParserClang::ParseTemplateDIE(
if (tag == DW_TAG_template_value_parameter && uval64_valid) {
if (auto value = MakeAPValue(ast, clang_type, uval64)) {
template_param_infos.InsertArg(
- name, clang::TemplateArgument(
- ast, ClangUtil::GetQualType(clang_type),
- std::move(*value), is_default_template_arg));
+ name,
+ clang::TemplateArgument(ast, ClangUtil::GetQualType(clang_type),
+ std::move(*value)));
----------------
Michael137 wrote:
This is where the problem that we fixed originally lies. LLDB needs to communicate to Clang that a `TemplateArgument` corresponds to a defaulted value. That's encoded in DWARF. Setting it on `TemplateArgument` here was the only way to tell Clang's `TypePrinter` about this (AFAIK). I'm aware that the defaulted-ness is already encoded in the AST elsewhere, but because of the way that templates are encoded in DWARF, we can't really make use of that. Long story short, we can't call `setDefaultArgument` from LLDB. Of course I'm happy to consider alternatives if we can make the test-cases work as they do now
https://github.com/llvm/llvm-project/pull/155120
More information about the lldb-commits
mailing list