[clang] [clang][ExprConst] Fix rendering of explicit this parameters (PR #177551)
Oliver Hunt via cfe-commits
cfe-commits at lists.llvm.org
Wed Jan 28 02:26:50 PST 2026
================
@@ -2012,20 +2014,17 @@ void CallStackFrame::describe(raw_ostream &Out) const {
Out << '(';
- for (FunctionDecl::param_const_iterator I = Callee->param_begin(),
- E = Callee->param_end(); I != E; ++I, ++ArgIndex) {
- if (ArgIndex > (unsigned)IsMemberCall)
- Out << ", ";
+ llvm::ListSeparator Comma;
+ for (unsigned ArgIndex = ExplicitInstanceParam, N = Callee->getNumParams();
+ ArgIndex != N; ++ArgIndex) {
+ Out << Comma;
- const ParmVarDecl *Param = *I;
- APValue *V = Info.getParamSlot(Arguments, Param);
+ const ParmVarDecl *Param = Callee->getParamDecl(ArgIndex);
+ const APValue *V = Info.getParamSlot(Arguments, Param);
if (V)
V->printPretty(Out, Info.Ctx, Param->getType());
else
Out << "<...>";
-
- if (ArgIndex == 0 && IsMemberCall)
- Out << "->" << *Callee << '(';
----------------
ojhunt wrote:
I was trying to work out how this was dead code -- setting IsMemberCall to false after doing the initial output seems destined to cause confusing bugs later on. Given this pr removes the use of IsMemberCall that required it to always be false I think that assignment should be removed.
https://github.com/llvm/llvm-project/pull/177551
More information about the cfe-commits
mailing list