<div dir="ltr">+cfe-dev -- in case anyone knows why this happens.<div><br></div><div>Thanks!</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Apr 23, 2016 at 1:41 PM, RJ Ryan <span dir="ltr"><<a href="mailto:rryan@alum.mit.edu" target="_blank">rryan@alum.mit.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi there,<div><br></div><div>The following code only produces thread safety warnings for me in get_foo_copy, not get_foo_reference. Is this expected? Sorry if this is a FAQ / known issue.</div><div><br></div><div><div>$ clang --version</div><div>Apple LLVM version 7.0.2 (clang-700.1.81)</div><div>Target: x86_64-apple-darwin15.3.0</div><div>Thread model: posix</div></div><div><br></div><div>The problem also seems present on clang 3.8.0:</div><div><a href="https://godbolt.org/g/37DqNy" target="_blank">https://godbolt.org/g/37DqNy</a><br></div><div><br></div><div>Best,</div><div>RJ</div><div><br></div><div>(with the usual thread annotation definitions)</div><div><br></div><div><div>class CAPABILITY("mutex") Mutex {</div><div>  public:</div><div>    Mutex() {}</div><div>    inline void lock() ACQUIRE() {}</div><div>    inline void unlock() RELEASE() {}</div><div>};</div><div><br></div><div>class Foo {</div><div>  public:</div><div>    int& get_foo_reference() {</div><div>        return foo_;</div><div>    }</div><div><br></div><div>    int get_foo_copy() {</div><div>        return foo_;</div><div>    }</div><div><br></div><div>  private:</div><div>    Mutex foo_lock_;</div><div>    int foo_ GUARDED_BY(foo_lock_);</div><div>};</div></div><div><br></div></div>
</blockquote></div><br></div>