[PATCH] D15784: Enable 2 warnings on MSVC, turn on StringPooling & intrinsic functions

Aaron Ballman via llvm-commits llvm-commits at lists.llvm.org
Sat Jan 2 15:28:14 PST 2016

aaron.ballman added a comment.

In http://reviews.llvm.org/D15784#318475, @majnemer wrote:

> In http://reviews.llvm.org/D15784#318471, @aaron.ballman wrote:
> > In http://reviews.llvm.org/D15784#318470, @AndyAyers wrote:
> >
> > > Out of curiosity, why do bigobj files cause trouble and need to be avoided?
> >
> >
> > I suppose that it is less of a real concern these days (it used to be a compatibility issue with older versions of MSVC that we no longer care about) and more of a code smell concern. Having to enable a special linker flag because of the number of addressable sections you are creating can identify a design problem when you run over that limit. We've had this come up with template instantiations that went wild, and getting warned about the section limits helped us notice that issue in the first place and come up with a better design.
> Bigobj does not require a special linker flag.  For the record, clang-cl transparently transitions into bigobj mode and always uses COMDATs for string literals.


The question, at least for me, becomes whether there's a better way to track when we have template instantation explosions like we did with the AST matchers a while back. If there's a more assertive way to know when that happens (preferably something that diagnoses), then I wouldn't really care at all about the state of the /GF flag.


More information about the llvm-commits mailing list