[llvm-bugs] [Bug 46354] New: Missing warning -Wthread-safety-negative when using capabilities in namespace scope

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Jun 16 18:09:04 PDT 2020


https://bugs.llvm.org/show_bug.cgi?id=46354

            Bug ID: 46354
           Summary: Missing warning -Wthread-safety-negative when using
                    capabilities in namespace scope
           Product: clang
           Version: trunk
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Frontend
          Assignee: unassignedclangbugs at nondot.org
          Reporter: aaronpuchert at alice-dsl.net
                CC: llvm-bugs at lists.llvm.org, neeilans at live.com,
                    richard-llvm at metafoo.co.uk

With mutex.h from https://clang.llvm.org/docs/ThreadSafetyAnalysis.html#mutex-h
and -Wthread-safety-negative, there is a warning on

class Foo {
  Mutex mu;

public:
  void foo() {
    mu.Lock(); // acquiring mutex 'mu' requires negative capability '!mu'
    mu.Unlock();
  }
};

but not on

Mutex mu;

void foo() {
  mu.Lock();
  mu.Unlock();
}

That's inconsistent, and probably also unintended: "The analyzer assumes that
it holds a negative capability for any object that is not defined within the
current lexical scope. The scope of a class member is assumed to be its
enclosing class, while the scope of a global variable is the translation unit
in which it is defined." [1]

[1]
https://static.googleusercontent.com/media/research.google.com/en/us/pubs/archive/42958.pdf

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20200617/1bce0542/attachment.html>


More information about the llvm-bugs mailing list