[cfe-dev] Q on patch for CWG 2352

David Blaikie via cfe-dev cfe-dev at lists.llvm.org
Wed Mar 4 13:31:37 PST 2020


+Richard Smith <richard at metafoo.co.uk> for visibility.



On Wed, Mar 4, 2020 at 12:56 PM Robinson, Paul via cfe-dev <
cfe-dev at lists.llvm.org> wrote:

> Richard Smith made a patch in f041e9ad for CWG2352.
> As a consequence of this patch, we had an obscure test failure,
> and it's not clear to me that it's an intentional consequence.
> So I figured I'd ask here.
>
> Reduced test case:
>
> bool foo(void * const * const *       &&) { return false; }
> bool foo(void *       * const * const &)  { return true; }
> bool bar() {
>   return foo(reinterpret_cast<void***>(2));
> }
>
> Prior to the patch, the compiler selected the second overload;
> after the patch, it selects the first overload.  Apparently there's
> some subtle difference in the preferred-ness of one over the other,
> and AFAICT the const-nesses aren't supposed to factor in any more?
> so it's about the &-ref versus the &&-ref?
>
> As I said, mainly I want to make sure this was intentional; if it
> is, we can fiddle our test and that's the end of it.  But if it's
> not intentional, this change is in the almost-final Clang 10.0
> release, and might want to be fixed before it goes out.
>
> Thanks,
> --paulr
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20200304/e82ae919/attachment.html>


More information about the cfe-dev mailing list