[PATCH] D52879: Derive builtin return type from its definition
Marco Antognini via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Nov 30 08:06:20 PST 2018
mantognini added a comment.
In D52879#1311177 <https://reviews.llvm.org/D52879#1311177>, @riccibruno wrote:
> And moreover I believe this change is subtly incorrect for the following reason:
> The type that is passed into the constructor of the call expression is the type
> of the call expression, and not the return type.
>
> The difference between the return type and the type of the call expression is that
> 1.) References are dropped, and
> 2.) For C++: The cv-qualifiers of non class pr-values are dropped,
> 3.) For C: The cv-qualifiers are dropped.
>
> ( as can be seen in `FunctionType::getCallResultType` )
Could you clarify one thing for me: If I understood what you were saying, the type passed to CallExpr should not be ref-cv-qualified, is that right?
In that case, couldn't we "simply" remove the ref + CV-qualifiers from ReturnTy? (`getNonReferenceType().withoutLocalFastQualifiers()`)
Note: I cannot revert this //and// keep the test because the new ones will fail.
Repository:
rC Clang
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D52879/new/
https://reviews.llvm.org/D52879
More information about the cfe-commits
mailing list