rsmith added inline comments.
================ Comment at: clang/lib/AST/ASTContext.cpp:5461 +QualType ASTContext::getDecltypeForParenthesizedExpr(const Expr *e) const { + if (!e) + return VoidTy; ---------------- This check doesn't seem like it belongs here. ================ Comment at: clang/lib/Sema/SemaExprCXX.cpp:5845 + if (!To->isRValue()) { + QualType T = Self.Context.getDecltypeForParenthesizedExpr(To); InitializedEntity Entity = InitializedEntity::InitializeTemporary(T); ---------------- mizvekov wrote: > aaronpuchert wrote: > > mizvekov wrote: > > > aaronpuchert wrote: > > > > The quote doesn't reference parenthesized expressions, isn't this just > > > > coincidentally the same thing? > > > It's fundamentally the same thing. The `getDecltypeForParenthesizedExpr` > > > name is what I tried to keep, I don't have better ideas there. > > What this is doing is pointwise equal to `getDecltypeForParenthesizedExpr`, > > but there is no parenthesized expression, and no `decltype`. There is a > > quote from the standard that defines this separately (by now this seems to > > be [[http://eel.is/c++draft/expr.cond#4|expr.cond#4]]), and there are some > > differences especially in the prvalue case. So I'm not sure this helps. > Here for XValue and and LValue, the rules are exactly the same as > https://eel.is/c++draft/dcl.type.decltype#1. > And the original code here even already special cases it... > > I am sure there is some way we can agree that we should not repeat the code > just because the standard did not bother to give a name to this part of the > rules... And again I think it is no coincidence that it makes sense to > perform the same changes in all these cases. Maybe we can find a more general name for this functionality that doesn't mention `decltype`. Perhaps something like `getReferenceQualifiedType`? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D100713/new/ https://reviews.llvm.org/D100713 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits