[llvm-bugs] [Bug 44693] New: False positive on calling new(std::size_t, std::align_val_t)

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Jan 28 01:56:24 PST 2020


            Bug ID: 44693
           Summary: False positive on calling new(std::size_t,
           Product: clang
           Version: 7.0
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Static Analyzer
          Assignee: dcoughlin at apple.com
          Reporter: cassio.neri at gmail.com
                CC: dcoughlin at apple.com, llvm-bugs at lists.llvm.org


    struct X {
        alignas(32) char c;

    int main() {
        X* p = new X; // #1
        delete p;

compiled with

    scan-build clang++ -g -std=c++17 main.cpp

yields warning: Function taking 2 arguments is called with fewer (1)
    X* p = new X;"

Since X is an over-aligned type, in C++17 the new expression in #1 makes the
compiler to call operator new(std::size_t, std::align_val_t). It seems the
static analyzer believes the compiler behaves as per C++14 and makes a call to

At least the warning could output a more informative message mentioning

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/20200128/f1b21169/attachment-0001.html>

More information about the llvm-bugs mailing list