[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