erichkeane wrote:

> > > > > The MSVC FE team hasn't expressed enthusiasm for adding ugly 
> > > > > spellings. If I learn more I'll relay that info.
> > > > 
> > > > 
> > > > Thank you for checking! Unfortunately, I think that's a reason for 
> > > > Clang to not support it for the `msvc` vendor prefix either.
> > > 
> > > 
> > > What is the alternative?
> > 
> > 
> > Can you get away with not using `[[msvc::no_unique_address]]`? If so, I'd 
> > go that route.
> > No. We need it to have a reasonable ABI.
> > If not, I'd say use the attribute with the non-ugly spelling and woe unto 
> > anyone defining `msvc` as a macro despite that being a perfectly valid 
> > thing for them to do. You could be "kind" and do
> > ```
> > #ifdef msvc
> > #error "Microsoft's vendor specific attribute prefix steals this identifier 
> > from the user's namespace, please file an issue with Microsoft if you see 
> > this diagnostic"
> > #endif
> > ```
> > 
> > 
> >     
> >       
> >     
> > 
> >       
> >     
> > 
> >     
> >   
> > or something along those lines.
> 
> This steals both `msvc` and `no_unique_address` and does that on all 
> platforms, not just MSVC, so that's not exactly a thrilling solution. Would 
> defining a namespace like `__clang_msvc__` be an option? libc++ only cares 
> about Clang on MSVC targets, so it's pretty much irrelevant what MSVC does 
> for us. Adding an alias like `[[_Clang::__no_unique_address__]]` would also 
> work if that's more palatable. That'd have to be added to any msvc attributes 
> libc++ cares about of course (though currently that's only 
> `[[msvc::no_unique_address]]`).

I'm personally sympathetic, and would be ok with something that we know MSVC 
won't step on (`__clang_msvc__` would be fine to me).  As far as the 
`no_unique_address`, I THINK we already get the double-underscore spelling of 
that, don't we?  I don't think we exclude the MSVC spellings from that.

https://github.com/llvm/llvm-project/pull/113765
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to