Re: r304376 - PR33232: implement support for MSVC's __is_trivially_destructible trait.

2017-06-02 Thread Richard Smith via cfe-commits
I think it comes down to a question of whether we want to guarantee that these traits are treated as not being identifiers. In some sense, it's an implementation detail that we model them as keywords -- and as it happens, there are some circumstances in which we *don't* model them as keywords. For

Re: r304376 - PR33232: implement support for MSVC's __is_trivially_destructible trait.

2017-06-02 Thread Eric Fiselier via cfe-commits
I've been using !__is_identifier to test for things like that. It seems to be the most consistent way. Is there some problem with this? /Eric On Thu, Jun 1, 2017 at 6:46 PM, Richard Smith wrote: > On 31 May 2017 at 17:41, Eric Fiselier wrote: > >> I'm assuming libc++ should move to this trait

Re: r304376 - PR33232: implement support for MSVC's __is_trivially_destructible trait.

2017-06-01 Thread Richard Smith via cfe-commits
On 31 May 2017 at 17:41, Eric Fiselier wrote: > I'm assuming libc++ should move to this trait instead? > Yes, that'd be a good idea. Though now that you mention it, I'm not sure we have a good feature detection story for these builtins. Looks like a bunch of the existing ones are (oddly) covered

Re: r304376 - PR33232: implement support for MSVC's __is_trivially_destructible trait.

2017-05-31 Thread Eric Fiselier via cfe-commits
I'm assuming libc++ should move to this trait instead? /Eric On Wed, May 31, 2017 at 6:28 PM, Richard Smith via cfe-commits < cfe-commits@lists.llvm.org> wrote: > Author: rsmith > Date: Wed May 31 19:28:16 2017 > New Revision: 304376 > > URL: http://llvm.org/viewvc/llvm-project?rev=304376&view=r

r304376 - PR33232: implement support for MSVC's __is_trivially_destructible trait.

2017-05-31 Thread Richard Smith via cfe-commits
Author: rsmith Date: Wed May 31 19:28:16 2017 New Revision: 304376 URL: http://llvm.org/viewvc/llvm-project?rev=304376&view=rev Log: PR33232: implement support for MSVC's __is_trivially_destructible trait. Unlike the GCC-compatible __has_trivial_destructor trait, this one computes the right answe