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
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits