cor3ntin added inline comments.
================ Comment at: clang/lib/AST/DeclCXX.cpp:841 const auto *ParamTy = - Method->getParamDecl(0)->getType()->getAs<ReferenceType>(); + Method->getNonObjectParameter(0)->getType()->getAs<ReferenceType>(); if (!ParamTy || ParamTy->getPointeeType().isConstQualified()) ---------------- aaron.ballman wrote: > cor3ntin wrote: > > cor3ntin wrote: > > > aaron.ballman wrote: > > > > Under what circumstances should existing calls to `getParamDecl()` be > > > > converted to using `getNonObjectParameter()` instead? Similar for > > > > `getNumParams()`. > > > everytime you want to ignore (or handle differently) the explicit object > > > parameter. I'll do another survey at some point, to be sure i didn't miss > > > a spot > > I found a bug https://github.com/cplusplus/CWG/issues/390 ! > > (`AreSpecialMemberFunctionsSameKind`) - So far nothing else but I'll do > > several passes > This adds an unfortunate amount of complexity to the compiler because now we > have to explicitly remember to think about this weird scenario, but I'm not > seeing much of a way around it. I suspect this will be a bit of a bug factory > until we're used to thinking explicitly about this. > > Be sure to double-check things like attributes that take arguments which > represent an index into a function parameter list (like the `format` > attribute), as those have to do a special dance to handle the implicit `this` > parameter. I'm guessing the static analyzer and clang-tidy will both also run > into this in some places as well. https://cplusplus.github.io/CWG/issues/2787.html Do we want to implement that resolution now? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D140828/new/ https://reviews.llvm.org/D140828 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits