[libcxx] r215740 - Revert "Turn off extern templates for most uses."

Justin Bogner mail at justinbogner.com
Sun Aug 17 18:06:35 PDT 2014

Eric Fiselier <eric at efcs.ca> writes:
> Chandler mentioned that MSAN isn't very useful without an instrumented
> standard library. This puts us in a pickle.  Most of the time libc++
> is shipped to users instrumented. I really don't want the end-user to
> see all these FPs.  Without the extern template declarations they
> don't appear. For that reason I think we should keep them out for now.

Just as a small data point, with an instrumented program and
uninstrumented libc++ I see 575 msan failures without extern templates,
and 724 with. If libc++ is instrumented, it's more like 200 (and many of
these look like they're just because I've messed up using the
instrumented library with the instrumented executable).

I really don't think it's worth the cost of insantiating these very
fundamental templates in *every single user* to work around a limitation
in the memory sanitizer. This is an unreasonable amount of overhead for
standard library types.

More information about the cfe-commits mailing list