jamesr added a comment. Thank you for posting the LIT changes - that's the part I was unable to figure out. I have a number of additional failure test cases that I will add.
I don't know what sort of code this could break, although I certainly don't claim to know more about these annotations than the author. Do you have a link to that discussion handy? The most obvious way this could break existing code would be if existing code was compiling with -Wthread-safety and had its own annotations that were inconsistent with these, but as it's a compile error to declare thread-safety relationships with types that aren't already annotated I can't see how any code that would be broken could compile today. Concretely, if some code is written like this today: struct Foo { int a __attribute__((guarded_by(m))); std::mutex m; }; void Bad(Foo* f) { f->a++; } will fail to compile without this patch in libc++ with the error: /tmp/test.cc:4:26: error: 'guarded_by' attribute requires arguments whose type is annotated with 'capability' attribute; type here is 'std::mutex' [-Werror,-Wthread-safety-attributes] int a __attribute__((guarded_by(m)) http://reviews.llvm.org/D14731 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits