[PATCH] D33852: Enable __declspec(selectany) on linux
Piotr Padlewski via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Aug 29 19:13:06 PDT 2017
Prazek added a comment.
In https://reviews.llvm.org/D33852#854213, @aaron.ballman wrote:
> In https://reviews.llvm.org/D33852#854176, @Prazek wrote:
> > In https://reviews.llvm.org/D33852#853982, @aaron.ballman wrote:
> > > In https://reviews.llvm.org/D33852#853410, @Prazek wrote:
> > >
> > > > Sorry for so late fixes, but it would be good to put it in 5.0
> > >
> > >
> > > I do not think this should be in 5.0, as I believe we're only accepting regression fixes at this point.
> > This is a regression. __declspec(selectany) works completely fine on linux with 4.0. Without it clang-5.0 will be useless for any major windows project compiled on linux.
> > edit:
> > here is a regression: https://reviews.llvm.org/D32083
> This is also adding new functionality that has had zero testing because it removes *all* target-specific checking for the attribute. Under the previous functionality (changed in https://reviews.llvm.org/D32083), this still required some mention of microsoft something (it went from requiring microsoft extensions to be enabled to instead require a Windows target) -- that's been entirely removed from this patch so now you can use this attribute for all target architectures, so it's not purely fixing a regression. Given how late we are in the release cycle, I am uncomfortable with this going in to 5.0, but I'd have no problems letting it bake for a bit and putting it into 5.1 (or 5.0.1, however we're naming bug releases these days).
I don't think this is the case - @rnk said that
> I guess so. I think __declspec spellings are controlled by -fdeclspec-extensions, which is off by default except on Windows & PS4. If we remove this constraint, __attribute__((selectany)) will become available everywhere. I guess that's OK.
So we went from requiring ms extension to not requiring ms extension but only working on windows and now
we require -fdeclspec-extensions or -fms-extensions on every platform other than windows and ps4.
More information about the cfe-commits