================ @@ -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 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits