[PATCH] D62645: [Sema] Resolve placeholder types before type deduction to silence spurious `-Warc-repeated-use-of-weak` warnings
Akira Hatanaka via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Jun 14 18:02:05 PDT 2019
ahatanak added inline comments.
================
Comment at: lib/Sema/SemaDecl.cpp:11101
+ if (auto *placeholderType = Init->getType()->getAsPlaceholderType())
+ if (placeholderType->getKind() == BuiltinType::PseudoObject) {
+ Res = CheckPlaceholderExpr(Init).get();
----------------
rjmccall wrote:
> `if (Init->hasPlaceholderType(BuiltinType::PseudoObject))`
>
> Although maybe this should just be `isNonOverloadPlaceholderType()`, since it's the syntactic-only placeholders that we're trying to cover. (Feel free to add `Expr::hasNonOverloadPlaceholderType()` for convenience.)
I had to move the code in `deduceVarTypeFromInitializer` that converts `UnknownAnyType` to `id`. The conversion has to happen before `CheckPlaceholderExpr` is called.
Repository:
rC Clang
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D62645/new/
https://reviews.llvm.org/D62645
More information about the cfe-commits
mailing list