dim added a comment.

In https://reviews.llvm.org/D28520#648880, @delesley wrote:

> Sorry about the slow response.   My main concern here is that the thread 
> safety analysis was designed for use with a library that wraps the system 
> mutex in a separate Mutex class.  We did that specifically to avoid breaking 
> anything; code has to opt-in to the static checking by defining and using a 
> Mutex class, and the API of that class is restricted to calls that can be 
> easily checked via annotations.  Including attributes directly in the 
> standard library has the potential to cause lots of breakage and false 
> positives.


Yes, I agree with that.  However, on FreeBSD the pthread functions themselves 
are already annotated, so the libc++ wrapper functions cause -Werror warnings 
during the tests.  Therefore one of my suggestions was to explicitly turn off 
warnings using `no_thread_safety_analysis` attributes.  Is there any 
disadvantage in doing that?

> Is there some way to control the #ifdefs so that the annotations are turned 
> off by default for everyone except possibly freebsd, but there's still a way 
> to turn them on for users who want to see the warnings?  I'm not a libcxx 
> expert.

Yes, that was one of my other suggestions, using `#if defined(__FreeBSD__)` to 
limit these attributes to FreeBSD only.   We can do that either with the 
`no_thread_safety_analysis` attributes, or with the 'real' annotations, though 
the latter are not really useful in this case.

I'm really open to any variant, as long as something that works can get in 
before the 4.0.0 release. :)


https://reviews.llvm.org/D28520



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to