aaron.ballman added a comment.

In https://reviews.llvm.org/D28520#652607, @dim wrote:

> 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. :)


I feel like there's still some confusion here (likely on my part). DeLesley was 
asking if there was a way to turn this off for everyone *except* FreeBSD (that 
is user-controllable), but your code turns it off specifically *for* FreeBSD 
with no option to enable. The part that has me confused is that FreeBSD is 
annotating their functionality specifically to enable thread safety checking; 
it seems like turning that checking off rather than supporting it is the wrong 
way to go. I think that may be why DeLesley was saying to disable the 
functionality for non-FreeBSD systems while still honoring it on FreeBSD, but 
if I'm confused, hopefully he'll clarify.


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