mizvekov added a comment.

In D136533#3891905 <https://reviews.llvm.org/D136533#3891905>, @ldionne wrote:
> Is it possible that it would be one of those two bugs? 
> https://github.com/llvm/llvm-project/issues?q=is%3Aopen+is%3Aissue+author%3Aldionne+availability+

I don't think so.

It does look like libc++ makes some uses within itself of types which were 
marked unavailable.
It's just that we missed diagnosing those cases before, which is what this 
patch is fixing.

Ie if you see the included test case:

  struct A {
    using ta [[deprecated]] = int;
  };
  using t1 = typename A::ta; // expected-warning {{'ta' is deprecated}}

We missed diagnosing that before, when performing a 'typename' member access.
The `availability` attribute is supposed to work on the same principles as 
`deprecated` does.

This is diagnosed by GCC as well, and I thought libc++ was also tested with it. 
Is that maybe not the case for those old Apple systems?

In any case, let me know if you think otherwise, or if we will need to 
implement some kind of workaround...


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D136533/new/

https://reviews.llvm.org/D136533

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to