[llvm-bugs] [Bug 34198] New: Potential leaks reported on `new`ed pointer escaped via reinterpret_cast + bit ops

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Aug 15 16:42:29 PDT 2017


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

            Bug ID: 34198
           Summary: Potential leaks reported on `new`ed pointer escaped
                    via reinterpret_cast + bit ops
           Product: clang
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Static Analyzer
          Assignee: kremenek at apple.com
          Reporter: george.burgess.iv at gmail.com
                CC: llvm-bugs at lists.llvm.org

Test case:

using uintptr_t = unsigned long long;
uintptr_t bar;
void alloc() {
  bar = reinterpret_cast<uintptr_t>(new int) | 0;
}

$ clang --analyze /tmp/tc.cpp -fno-exceptions
/tmp/tc.cpp:4:7: warning: Potential memory leak
  bar = reinterpret_cast<uintptr_t>(new int) | 0;
  ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$

However, if the test-case is changed to:

using uintptr_t = unsigned long long;
uintptr_t bar;
void alloc() {
  bar = reinterpret_cast<uintptr_t>(new int);
  bar |= 0;
}

This "potential leak" warning doesn't appear, regardless of the value that
`bar` is `or`ed with.

-- 
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/20170815/632ee1e9/attachment-0001.html>


More information about the llvm-bugs mailing list