EricWF marked 2 inline comments as done. EricWF added inline comments.
================ Comment at: lib/Sema/SemaCast.cpp:1148 + // FIXME C++1z doesn't allow this conversions for xvalues. if (!SrcExpr->isGLValue()) ---------------- rsmith wrote: > Actually, it does, but it's covered by p4. (p3 now only covers the special > lvalue->xvalue case for `static_cast`, which is not permitted by p4.) It's > fine for us to still handle this here, or to allow the p4 case to deal with > it instead. It's probably better to keep handling it here, since we produce > better diagnostics this way. Cool sounds good. I knew p4 would end up handling it, but I wasn't sure if forwarding to p4 would allow previously ill-formed conversions. I tried to construct such a case but couldn't. ================ Comment at: lib/Sema/SemaCast.cpp:1171-1173 + msg = SrcExpr->isLValue() ? diag::err_bad_lvalue_to_rvalue_cast + : diag::err_bad_rvalue_to_rvalue_cast; return TC_Failed; ---------------- rsmith wrote: > OK, so the idea here is that p4 will never apply in a case where the > reference is reference-related to the source but not reference-compatible, > and no other rules would let us static_cast to reference type? It would be > good to add a comment explaining that, since it's not immediately obvious. That's my understanding. I'll add a comment. https://reviews.llvm.org/D26231 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits